XPath - 如何选择只有1个类的节点?

.net c# html-agility-pack xml xpath

对于c#上的xpath,我如何按类选择节点,其中节点只有1个类?

例如,如果我有这个:

<span class="red blue"></span>
<span class="red"></span>

给出“red”的xpath表达式只返回第二个节点。

谢谢。

热门答案

如果你想选择所有包含red的@class的span元素,并且你确定字符串red不会出现在@class其他地方,请在XPATH 1.0中使用它:

//span[contains(@class,'red')]

如果红色可能出现在不同的类别中(比如说centered ),则需要变得更复杂

//span[contains(concat(' ', normalize-space(@class), ' '), ' red ')]

如果你可以使用XPATH 2.0,你可以考虑这两种情况:

//span[tokenize(@class,'\s+')[. eq 'red']]


许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因