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

XPath - how to select node with multiple attribute values?

假设:

<foo bar="one two three">

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

//foo[@bar="one"]

XPath 1.0 或 2.0

标准的成语是:

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

XPath 2.0

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

执行此操作的标准方法是

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