|
удаление повторяющихся строк
|
|||
---|---|---|---|
#18+
Добрый день. Читал несколько тем о том, как игнорировать повторяющиеся ноды, в частности: Группировка? и XLS + убрать дублирующие ноды . Моя задача несколько отличается, дело в том, что мне нужно получить из неполностью дублирующейся ветки некоторые данные, а потом ее проигнорировать. Имею 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. 24.
Я вывожу эти данные в таблицу и, чтобы не дублировать всю строку, хочу вывести все значения тега <Количество> через запятую при обработке первой строки из набора дублирующихся. Вот, как я пытаюсь это сделать: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Условие Код: plaintext
Условие Код: plaintext
У меня есть подозрение, что выбранный мною способ не совсем подходит к задаче, т.к. повторяющихся строк может быть больше двух, а я захватываю только 2. Мне кажется, наиболее подходящий алгоритм приведен в XLS + убрать дублирующие ноды . Пожалуйста, помогите мне преобразовать его для моих нужд? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2009, 23:40 |
|
удаление повторяющихся строк
|
|||
---|---|---|---|
#18+
Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2009, 01:36 |
|
удаление повторяющихся строк
|
|||
---|---|---|---|
#18+
Вернее даже так Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2009, 01:37 |
|
удаление повторяющихся строк
|
|||
---|---|---|---|
#18+
Слушайте , мне одному кажется что в _Vasilisk_"not(preceding-sibling::row[Имя = current()/Имя and Фамилия = current()/Фамилия]" закрывающей круглой скобки нехватает? это первое. второе, смущает вот это: Код: plaintext 1.
третье кодировка - если utf-8 , то с 99% уверенностью с рускими тегами ничего работать не будет. Тестинг показал что оснавная загвозка идет в первом условии. Немного не то что ты хотел, но все же: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2009, 08:36 |
|
удаление повторяющихся строк
|
|||
---|---|---|---|
#18+
а в общем складывается впечатление что ты ось используешь не в том направлении, то есть надо обходить братьев ниже, а ты как будто пытаешься искать в тех что раньше, хотя... могу и ошибаться ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2009, 08:38 |
|
удаление повторяющихся строк
|
|||
---|---|---|---|
#18+
Используя условие, предложенное _Vasilisk_ , преобразовал свою xsl-ку к следующему виду: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
SuSaа в общем складывается впечатление что ты ось используешь не в том направлении, то есть надо обходить братьев ниже, а ты как будто пытаешься искать в тех что раньше, хотя... могу и ошибаться Первым условием xsl:if я отсекаю повторяющиеся строки(теперь оно работает).Вторым xsl:if я выбираю нужную мне информацию из идущей далее дублирующей строки. Загвоздка в том, что в предложенной реализации я выбираю нужную мне информацию только из первой дублирующей строки, а остальные просто отсекаются первым xsl:if. Как избавиться от этого ограничения? SuSaтретье кодировка - если utf-8 , то с 99% уверенностью с рускими тегами ничего работать не будет. Работает с русскими тегами. это факт :) Чем вас не устраивает строчка <xsl:template match="/queryResult"> ? Я использую ее вместо <xsl:template match="/">, чтобы не писать лишнего в путях. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2009, 11:35 |
|
удаление повторяющихся строк
|
|||
---|---|---|---|
#18+
Разобрался, как выбирать нужную мне информацию из всех похожих братьев. Заменил условие Код: plaintext 1. 2.
Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2009, 19:11 |
|
|
start [/forum/topic.php?fid=14&msg=35756171&tid=1333679]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 326ms |
total: | 443ms |
0 / 0 |