XPath элемента, содержащего N номер определенного символа? - PullRequest
0 голосов
/ 26 сентября 2018

Мне нужен XPath элемента, в котором @id содержится 3 дефиса.

например, я хочу выбрать второй элемент ниже

<a id="X-X"></a>
<a id="X-X-X-X"></a>
<a id="X-X-X"></a>

1 Ответ

0 голосов
/ 26 сентября 2018

XPath 2.0

Это выражение XPath 2.0,

//a[matches(@id, "^([^-]*-){3}[^-]*$")]

будет выбирать все элементы a с атрибутами id, которые имеют 3 - символов в своем значении.Его можно легко адаптировать для подсчета символов, отличных от -, или для указания, что определенные символы должны находиться между -.

XPath 1.0

Это выражение XPath 1.0,

//a[string-length(@id) - string-length(translate(@id,"-","")) = 3]

выберет все a элементы с id атрибутами, которые имеют 3 - символов в своем значении.

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