|
Пронумеровать элементы XML с помощью XSL
|
|||
---|---|---|---|
#18+
Так получилось, что знакомство с XSL у меня началось со сложной задачи, к которой я не знаю, как подступиться. Надо написать xsl-шаблон, который преобразует начальный XML в конечный XML, в котором элементы <math> будут пронумерованы (добавится атрибут number) в порядке возрастания, но учитывая не данное, а окончательное расположение, в котором элементы <feature> встанут на место <featureAnchor>ов с соответствующими id. Начальный XML Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Конечный XML Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2009, 20:16 |
|
Пронумеровать элементы XML с помощью XSL
|
|||
---|---|---|---|
#18+
Masochistно учитывая не данное, а окончательное расположение Так и не вкурил систему нумерации ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2009, 23:48 |
|
Пронумеровать элементы XML с помощью XSL
|
|||
---|---|---|---|
#18+
math - элементы, которые надо пронумеровать. featureAnchor - это ссылка на группу из элементов math. math@number - аттрибут который нужно добавить - это порядок, в котором упоминается тот или иной <math> в исходном документе. А упоминаться тот или иной math в исходном документе может либо прямо (sect1/math), либо по ссылке (sect1/featureAnchor). ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2009, 12:25 |
|
Пронумеровать элементы XML с помощью XSL
|
|||
---|---|---|---|
#18+
это будет эпичный секс. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2009, 14:18 |
|
Пронумеровать элементы XML с помощью XSL
|
|||
---|---|---|---|
#18+
count(preceding::math) count(featureGroup/feature[@id=current()/preceding::featureAnchor/@features]/math) так, набросок ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2009, 14:22 |
|
Пронумеровать элементы XML с помощью XSL
|
|||
---|---|---|---|
#18+
Masochist, А я сделал (правда на 2.0 версии) . Ничего вообщем сложного. Нужно только сначала написать алгоритм (функциональный), а затем разбить задачу на мелкие части (их вышло 12). Если у кого есть короткое решение, интересно было бы посмотреть, но подозреваю что его нет, потому что исходная база не реляционная, увы. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2010, 14:47 |
|
Пронумеровать элементы XML с помощью XSL
|
|||
---|---|---|---|
#18+
Masochist, А два раза применить трансформацию можно? Один раз, что бы развернуть все группы и привести данные в "нормальную" форму. А во второй раз - пронумеровать, и снова свернуть все группы. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2010, 16:49 |
|
Пронумеровать элементы XML с помощью XSL
|
|||
---|---|---|---|
#18+
Надеюсь это не тестовое задание в какую-нить контору... Люблю злые икс-пасы: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2010, 01:58 |
|
|
start [/forum/topic.php?fid=14&fpage=33&tid=1333133]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 314ms |
total: | 449ms |
0 / 0 |