Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
18.11.2015, 18:10
|
|||
---|---|---|---|
Условие внутри условия в Xpath. |
|||
#18+
Привет. Возможно ли в Xpath писать условие внутри условия ? Некий аналог операции In/Exist. У меня есть некий Node1 - ссылка на него. Это все, что я имею для начала. У него есть несколько Childs1. Их имена константные. Т.е, это некий справочник с заранее известными элементами. Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Мне нужно найти Childs2 в Node2 у который аттрибут Id элементов, полученных из Childs1. Сейчас мне приходится в коде это реализовывать через цикл. Который сначала делает SelectNodes и вытаскивает все Childs1. А затем уже вызывать отдельные Xpath для каждого из них. Очень хотелось бы получить более красивое решение, когда один Xpath сам достает все, что нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.11.2015, 11:32
|
|||
---|---|---|---|
Условие внутри условия в Xpath. |
|||
#18+
Я в принципе через цикл пока сделал. Но вопрос мне интересен. Подозреваю, что так сделать не получится ? Вообще, проблемы 2: 1. Условие внутри условия. Разрешены ли ? 2. То, что в условии будет не строгое равенство (@a=@b), а аналог операции In/Exist (@a in (select from @B)). Подозреваю, что в Xpath такое не реализуемо. Однако может я просто не знаю, и решение имеется. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.11.2015, 18:09
|
|||
---|---|---|---|
|
|||
Условие внутри условия в Xpath. |
|||
#18+
ProBiotek1. Условие внутри условия. Разрешены ли ?Да ProBiotek2. То, что в условии будет не строгое равенство (@a=@b), а аналог операции In/Exist (@a in (select from @B)).немного непонятно. Покажите XML и, что нужно вітянуть ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.11.2015, 11:01
|
|||
---|---|---|---|
Условие внутри условия в Xpath. |
|||
#18+
_Vasilisk_, Структура такая. Код: 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.
Node1 - это некий элемент, который я получаю на вход. Нужно собрать все его Elements. Затем нужно найти тэг Node2 XPath: имя известно (константа) и известен его атрибут ID. И затем нужно вытащить все его Datas у которых ID совпадает с теми, что были уже взяты из Elements (таким образом, в представленном XML, не должен быть извлечен Data с id="444") Поэтому я и сказал, что нужен некий аналог операции IN из SQL. Сейчас я это делаю через циклы в C# - иду по собранным Elements и извлекаю по одному элементы Data. Все работает, но хочется, чтобы все было одних XPath'ом. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.11.2015, 12:24
|
|||
---|---|---|---|
Условие внутри условия в Xpath. |
|||
#18+
по сути тут происходит Inner Join :) Связка один к одному. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.11.2015, 16:10
|
|||
---|---|---|---|
|
|||
Условие внутри условия в Xpath. |
|||
#18+
ProBiotekВсе работает, но хочется, чтобы все было одних XPath'ом.Нельзя одним запросом вытащить два набора узлов ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.11.2015, 17:53
|
|||
---|---|---|---|
Условие внутри условия в Xpath. |
|||
#18+
_Vasilisk_, Ну мне нужен набор из элементов Data. Но их ID должны соответствовать тем, что в тэгах Element. А всю цепочку начинаем раскручивать начиная с одного нода: Node1. Это все не реализуемо ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.12.2015, 22:26
|
|||
---|---|---|---|
Условие внутри условия в Xpath. |
|||
#18+
ProBiotek, не уверен что правильно понял задачу, но сделал одним Xpath выражением, правда пришлось малость подправить сам XML и использовал 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.
Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9.
table/Node2/Data[@id = ../../Node1/Element/@id] ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.12.2015, 09:44
|
|||
---|---|---|---|
|
|||
Условие внутри условия в Xpath. |
|||
#18+
Доброе время суток Фридрих , да, спасибо работает Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=14&tablet=1&tid=1332140]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
383ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 347ms |
total: | 822ms |
0 / 0 |