Однократное выражение XPath, чтобы получить некоторые атрибуты
-
09-10-2019 - |
Вопрос
У меня есть документ XML с некоторыми узлами, как
<node name="xxx" id="xxx">
Могу ли я использовать однократное выражение XPath, чтобы получить все узлы атрибутов, родитель которых также атрибут @id = 7
?
Решение
Нет. Вам нужно будет определить, какой атрибут чтения - один за другим.
/node[@id=7]/@name
Получу name
/node[@id=7]/@id
Получу id
и т. д.
Другие советы
Использовать:
//@*[not(name()='id') and ../@id = 7]
Это выбирает все атрибуты без идентификатора, родитель которого имеет id
атрибут со значением номера 7
. Отказ Это примет id='7'
и id=' 7 '
//@*[not(name()='id') and ../@id = '7']
Это выбирает все атрибуты без идентификатора, родитель которого имеет id
атрибут со значением строки '7'
. Отказ Это примет id='7'
но нет id=' 7 '
Это выберет все id
атрибут Узлы, имеющие значение 7:
//*/@id[. = '7']
Не связан с StackOverflow