Как выбрать узел, у которого есть родитель с некоторыми атрибутами - PullRequest
5 голосов
/ 16 февраля 2012

Как выбрать узел, у которого есть родитель с некоторыми атрибутами.Например: что такое Xpath, чтобы выбрать все элементы expiration_time.В следующем XML-коде я получаю сообщение об ошибке, если элементы состояний имеют атрибуты, в противном случае нет пробников.

Ответы [ 3 ]

4 голосов
/ 16 февраля 2012

states/expiration_time[../@elem = "0"] * * 1002

3 голосов
/ 16 февраля 2012

Используйте

/*/*/expiration_time

Выбирает все expiration_time элементы, которые являются потомками верхнего элемента XML-документа.

/*/*[@*]/expiration_time

Выбирает любой элемент expiration_time, родительский элемент которого имеет хотя бы один атрибут и является дочерним элементом верхнего элемента документа XML.

/*/*[not(@*)]/expiration_time

Выбирает любой элемент expiration_time, родительский элемент которого не имеет атрибутов и является дочерним элементом верхнего элемента документа XML.

/*/*[@elem = '2']/expiration_time

При этом выбирается любой элемент expiration_time, родительский элемент которого имеет атрибут elem со строковым значением '2' и является (родительским) дочерним элементом верхнего элемента документа XML.

0 голосов
/ 16 февраля 2012

Это даст вам все узлы, имеющие хотя бы один атрибут

//*[count(./@*) > 0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...