|
Игнорирование элементов-дубликатов
|
|||
---|---|---|---|
#18+
Есть такой xml Код: xml 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. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63.
Шаблон: Код: xml 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.
На выходе нужно получить Кофейни уровень 2 Coffe Shop 1 Эспрессо-бар Милли 0 Шоколадница Джелато шоколадо У меня же получается Кофейни уровень 2 Coffe Shop 1 Эспрессо-бар Милли 0 Шоколадница 0 Джелато шоколадо Т. е. в конце 0 лишний (необходимо исключить дубликаты). Что я не так делаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2012, 14:59 |
|
Игнорирование элементов-дубликатов
|
|||
---|---|---|---|
#18+
artwalek, Цикл этот зачем? Задачу конкретезировать надо было. Код: xml 1. 2. 3.
Вероятно вас спасет если вы цикл вот в такую проверку запихнете: Код: xml 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2012, 16:11 |
|
Игнорирование элементов-дубликатов
|
|||
---|---|---|---|
#18+
mage.lan Цикл для исключения повторяющихся этажей, конкретно в этом случае должен быть 1 раз 0 этаж, вместо двух. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2012, 20:25 |
|
Игнорирование элементов-дубликатов
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2012, 20:34 |
|
Игнорирование элементов-дубликатов
|
|||
---|---|---|---|
#18+
walek, ну я получаю, то что на картинке, единственное, что я там минус поставил вместо распирающего дива Код: xml 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2012, 12:02 |
|
Игнорирование элементов-дубликатов
|
|||
---|---|---|---|
#18+
mage.lan Спасибо. А почему position() = 1 and name()='floor' в предикате. И ещё, картинка не полностью показана. Если посмотреть целиком на xml то там 2 таблицы, слева похожая, там тоже выводятся этажи, но в вашем шаблоне этажи не выводятся. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2012, 12:55 |
|
Игнорирование элементов-дубликатов
|
|||
---|---|---|---|
#18+
artwalekmage.lan Спасибо. А почему position() = 1 and name()='floor' в предикате. И ещё, картинка не полностью показана. Если посмотреть целиком на xml то там 2 таблицы, слева похожая, там тоже выводятся этажи, но в вашем шаблоне этажи не выводятся.Прошу прощения, 2 таблица справа. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2012, 12:55 |
|
Игнорирование элементов-дубликатов
|
|||
---|---|---|---|
#18+
artwalek, ну наконец-то я догнал, что вы хотите ))) Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
теперь по поводу проверки preceding-sibling::*[position() = 1 and name()='floor'] берем всех обработанных на том же уровне, из них выбираем первого и у него должно быть имя тега floor (если в выборке никого, переходим к следующей части) preceding-sibling::*[position() = 1 and name() = 'item' and subtype/text() != current()/subtype/text() берем всех обработанных на том же уровне, из них выбираем первого и у него должно быть имя тега item а так же subtype не совпадать с subtype текущего тега, если одно из условий верно, тогда надо строить floor эту же проверку можно записать так, если она вам будет более понятна: preceding-sibling::*[1][name()='floor'] or preceding-sibling::*[1][name() = 'item'][subtype/text() != current()/subtype/text()] ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2012, 13:25 |
|
|
start [/forum/topic.php?fid=14&fpage=20&tid=1332629]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
36ms |
get topic data: |
22ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 22ms |
total: | 168ms |
0 / 0 |