XPath的元素包含N个特定字符?

时间:2018-09-26 12:03:23

标签: html xml xpath

我想要一个@id包含3个连字符的元素的XPath。

例如我要选择下面的第二个元素

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

1 个答案:

答案 0 :(得分:1)

XPath 2.0

此XPath 2.0表达式

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

将选择所有具有a属性且其值具有3个id字符的-元素。它可以轻松地用于计算-以外的字符,或者要求某些字符介于-字符之间。

XPath 1.0

此XPath 1.0表达式,

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

将选择所有具有a属性且其值具有3个id字符的-元素。