1

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

例如,如果我有这个:

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

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

谢谢。

4

2 回答 2

1

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

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

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

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

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

//span[tokenize(@class,'\s+')[. eq 'red']]
于 2012-11-23T08:04:16.233 回答
1

只需使用这个 XPath:

//span[normalize-space(@class) = 'red']
于 2012-11-23T04:08:24.227 回答