Xpath: исключения в запросе на основе родительского значения - PullRequest
1 голос
/ 09 марта 2011

Мне нужно взять все "//ul/li[not(@*)][count(*)=0]", кроме тех, у которых <div> родитель. Я пробовал "//not(div)/ul/li[not(@*)][count(*)=0]", но, к сожалению, это не работает. Кто-нибудь знает, как я могу справиться с этим? Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 09 марта 2011

Я думаю, вам нужно:

//ul[not(parent::div)]/li[not(@*|*)]

Или:

/descendant-or-self::node()[not(self:div)]/ul/li[not(@*|*)]

Оба выбирают такие ul, когда это корневой элемент, также.

1 голос
/ 09 марта 2011

Используйте

//*[not(self::div)]/li[not(@*) and not(*)]

, который может быть немного сокращен до эквивалента:

//*[not(self::div)]/li[not(@*|*)]
...