【问题标题】:XPath - How to select node that has only 1 class?XPath - 如何选择只有 1 个类的节点?
【发布时间】:2012-11-23 03:31:40
【问题描述】:

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

例如,如果我有这个:

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

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

谢谢。

【问题讨论】:

    标签: c# .net xml xpath html-agility-pack


    【解决方案1】:

    只需使用这个 XPath:

    //span[normalize-space(@class) = 'red']
    

    【讨论】:

      【解决方案2】:

      如果您想选择所有 @class 包含 redspan 元素,并且您确定字符串 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']]
      

      【讨论】:

        猜你喜欢
        • 2016-03-16
        • 2020-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-15
        • 2010-11-22
        • 2012-06-24
        • 1970-01-01
        相关资源
        最近更新 更多