XPath для поиска элементов с атрибутами - PullRequest
1 голос
/ 12 марта 2010

Как найти элементы, которые имеют хотя бы один атрибут?

Пример:

<tr>...</tr>
<tr style="">...</tr>
<tr width="">...</tr>

Я хочу все элементы tr, но ...

Я пытался следовать xpath, но он не работает.

//table//tr[contains(attributes::*,'')]

Спасибо

1 Ответ

3 голосов
/ 12 марта 2010

Это должно сделать это:

//table/tr[@*]

Причина, по которой вы не работаете, заключается в том, что contains() всегда будет возвращать true, когда второй параметр равен ''. Когда выражение возвращает узел, заданный в квадратных скобках, оно считается истинным, если оно не пустое, и ложным, если оно пустое. Так что [@*] вернет набор всех атрибутов и будет интерпретироваться как истина, если они есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...