XPath中选择属性以某些字符开头的元素

94

如题所述,是否可以在XPath中选择仅以特定字符串开头但可能不以相同字符串结尾的元素?

例如,有3个锚点元素:

<a href="buy.php/onething"></a><a href="buy.php/twothing"></a><a href="sell.php/anotherthing"></a>

我只想获取以'buy.php/'开头的锚链接元素。我认为以下代码行不起作用,是吗:

getByXPath("//a[@href='buy.php/']")

我该如何做到这一点?

2个回答

174

//a[starts-with(@href, 'buy.php/')]

这段代码是XPath语言的一部分,通常用于在XML或HTML文档中选择特定的节点。具体来说,此代码将选择所有包含以“buy.php /”开头的 href 属性值的 a 元素。

查看更多关于 starts-with 函数的信息。


3

不确定这是否是正确的语法,但您可能想要使用fn:contains xpath函数。您可以在此处找到其他有用的函数:

http://www.w3schools.com/xpath/xpath_functions.asp#string

getByXPath("//a[fn:contains(@href/text(), 'buy.php/')]")


注:该代码片段使用xpath函数来查找具有包含“buy.php/”文本的链接。

上面的链接已经失效了,但这里有另一个函数参考链接:https://developer.mozilla.org/en-US/docs/Web/XPath/Functions。 - But those new buttons though..

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接