|
XSL: Объединить множеста
|
|||
---|---|---|---|
#18+
Привет. Появилась такая задачка: Имеется входной XML вида: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
требуется получить XML: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
т.е. нужно избавиться от элементов "container", объединив множества узлов одноименных parent'ов. Имена элементов "parent" произвольные, заранее не известны. Их количество в container может быть произвольным. Что-то ума не приложу, как это сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2010, 13:16 |
|
XSL: Объединить множеста
|
|||
---|---|---|---|
#18+
//parent/@name='p2' и тд и тп ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2010, 13:18 |
|
XSL: Объединить множеста
|
|||
---|---|---|---|
#18+
Konst_One//parent/@name='p2' В том то и дело, что значения аттрибутов @name для элементов parent произвольные. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2010, 13:27 |
|
XSL: Объединить множеста
|
|||
---|---|---|---|
#18+
через переменную передавайте в шаблон //parent и сравнивайте с предыдущим значением ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2010, 13:52 |
|
XSL: Объединить множеста
|
|||
---|---|---|---|
#18+
Konst_Oneчерез переменную передавайте в шаблон //parent и сравнивайте с предыдущим значением Что? Какое предыдущее значение? Я вас совершенно не понял. Может напишите шаблон для тривиального примера из первого сообщения? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2010, 14:06 |
|
XSL: Объединить множеста
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2010, 14:14 |
|
XSL: Объединить множеста
|
|||
---|---|---|---|
#18+
Вы предлагаете вызывать темпелейт для каждого элемента parent? И каждый вызов темплейта будет выдавать всех-всех детей парента с таким именем? Тогда темплейт вызовется 2 раза для имени p1 и 2 раза для имени p2. Дубляж не нужен. Итерироваться по первому (или n-ному) контейнеру тоже нельзя, т.к. там могут быть представлены не все parent'ы ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2010, 14:18 |
|
XSL: Объединить множеста
|
|||
---|---|---|---|
#18+
Ладно, тогда упростим вопрос: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Хочу получить множество уникальных значений аттрибутов name, т.е. "А; B; C" Путь "//child/@name" естественно даст множество "А; B; C; A; B" поэтому не подходит. PS: нужно, чтобы сделать по этому множеству for-each цикл (в данном примере цикл должен иметь 3 итерации) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2010, 15:42 |
|
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.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2010, 16:13 |
|
|
start [/forum/topic.php?fid=14&fpage=35&tid=1333224]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
80ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 168ms |
0 / 0 |