|
Запрос, использующий для проверки атрибуты из другой ноды
|
|||
---|---|---|---|
#18+
Есть такой XML (States — справочник состояний, Result — результаты): Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Мне нужно вычислить следующие значения: 1. Количество результатов — count(//Result) 2. Количество результатов, у которых @state=skip — count(//Result[@state='skip']) 3. Количество результатов, у которых @state!=skip и State/@level<3 — ??? 4. Количество результатов, у которых State/@level>=3 и State/@mode=on — ??? 5. Количество результатов, у которых State/@level>=3 и State/@mode=on — ??? Не знаю, как сделать пункты 4 и 5. Как сделать пункт 3 тоже не знаю, но там можно сделать по другому, count(//Result[@state='ok' or @state='info' or @state='notice']). ________________________ Мы смотрим с оптимизмом... ...в оптический прицел. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2011, 16:48 |
|
Запрос, использующий для проверки атрибуты из другой ноды
|
|||
---|---|---|---|
#18+
Если говорить в терминах реляционных БД, то мне нужен join. Или хотя бы in. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2011, 16:55 |
|
Запрос, использующий для проверки атрибуты из другой ноды
|
|||
---|---|---|---|
#18+
Похоже, разобрался. Что-то вроде count(//Result[@state=//State[@level<2]/@code]). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2011, 17:03 |
|
Запрос, использующий для проверки атрибуты из другой ноды
|
|||
---|---|---|---|
#18+
Снова вопрос возник, самому составить запрос не получается. Есть нода Root. В ней есть коллекция Item. Item может содержать коллекцию Group. Group может содержать коллекцию Item. Глубина вложений может быть произвольная. У Item есть атрибуты @name и @state. Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Мне нужно из этой структуры получить три параметра. 1. Количество Item, у которых есть подчиненные Item. 2. Количество Item, у которых нет подчиненных Item (вариант — количество Item, у которых нет потомков, в том числе и Group). 3. Суммарное количество Group, у которых есть подчиненные Item с @state=on (варианты — все подчиненные Item содержат @state=on; хотя бы один из подчиненных Item содержит @state=on). Первые два параметра я получил как count(//Item[*]) и count(//Item[not(*)]), но возможно это неправильный или не самый лучший способ. Как получить третий параметр я пока себе не представляю. Видимо что-то типа count(//Group[/Item[@state='on']), но на этом у меня фантазия заканчивается. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2011, 23:56 |
|
Запрос, использующий для проверки атрибуты из другой ноды
|
|||
---|---|---|---|
#18+
Alibek B., count( //Item[ descendant::Item ]) count( //Item[ not( descendant::Item )]) count( //Group[ descendant::Item[ @state = 'on' ]]) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2011, 03:26 |
|
Запрос, использующий для проверки атрибуты из другой ноды
|
|||
---|---|---|---|
#18+
Код: xml 1. 2.
count( $results ) count( $results[ @state = 'skip' ]) count( $results[ not( @state = 'skip' ) and @state = $states[ @level < 3 ]/@code ]) count( $results[ @state = $states[ @level < 3 and @code != 'skip' ]/@code ]) count( $results[ @state = $states[ @level >= 3 and @mode = 'on' ]/@code ]) count( $results[ @state = $states[ @level >= 3 and @mode = 'off' ]/@code ]) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2011, 03:47 |
|
Запрос, использующий для проверки атрибуты из другой ноды
|
|||
---|---|---|---|
#18+
Благодарю, буду разбираться. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2011, 08:28 |
|
Запрос, использующий для проверки атрибуты из другой ноды
|
|||
---|---|---|---|
#18+
Разобраться самому не получилось. Сейчас у меня используется один файл, data.xml. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
XSL слишком большой, чтобы весь его размещать тут, но основная структура у него такая: Код: 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. 64. 65. 66.
Подскажите, какие изменения нужно сделать, чтобы XSL использовал два разных файла? У меня из узла /Data/References используются lookup-таблицы с помощью key. Также в одном месте я вызываю шаблон для /Data/References/States. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 15:32 |
|
Запрос, использующий для проверки атрибуты из другой ноды
|
|||
---|---|---|---|
#18+
Alibek B.Подскажите, какие изменения нужно сделать, чтобы XSL использовал два разных файла? Было же :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 17:18 |
|
|
start [/forum/topic.php?fid=14&fpage=24&tid=1332795]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 18ms |
total: | 141ms |
0 / 0 |