XPath - 如何选择具有多个属性值的节点?

时间:2015-02-10 13:18:57

标签: html xml dom xpath simple-html-dom

假设:

<foo bar="one two three">

如何将具有属性foo的所有bar标记与值one匹配(我不关心其他属性值可能存在)。这似乎不起作用:

//foo[@bar="one"]

2 个答案:

答案 0 :(得分:2)

XPath 1.0或2.0

标准惯用语是:

//foo[contains(concat(' ', normalize-space(@bar), ' '), ' one ')]

XPath 2.0

//foo[tokenize(@bar,'\s+')='one']

答案 1 :(得分:2)

执行此操作的标准方法是

//foo[contains(concat(" ", normalize-space(@bar), " "), " one ")]