【问题标题】:how to ignore double white-spaces during text matching using Xpath如何在使用 Xpath 进行文本匹配期间忽略双空格
【发布时间】:2015-03-10 07:33:59
【问题描述】:

我有一个这样的html代码:

<div class="main">
     <div class ="first">
        <p>just text</p>
                      </div>
     <div class= "second">
        <p>some text</p>
                      </div>
     <div class= "third">
        <p>some  text having double white-space</p>
                      </div>
</div>

并像这样使用 Xpath://div/p[contains(text(),'some text')] 但不幸的是,在元素 p 内的“某些文本”的任何地方都可以是双空格。所以我需要在匹配过程中忽略它们。我知道我可以使用像 translate(normalize-space(//div/p), ' ', '') 这样的 Xpath 表达式,但它会找到所有元素 p 并且只替换双空格而不匹配“某些文本”! 是否可以匹配“某些文本”但同时忽略双空格?

【问题讨论】:

    标签: c# html xpath


    【解决方案1】:

    当使用 XPath 1.0 选择一组节点时,XPath 不能更改结果中返回的节点。您只能选择已经存在的节点。在进行选择时,您可以使用以下方法忽略双空格:

    //div/p[contains(normalize-space(), 'some text')]
    

    这将返回您正在寻找的ps 集合,但它们的文本内容将保持原样。如果您随后想要获取没有重复空格的文本值,则可以遍历此节点集并从值中一一去除空格。您没有告诉我们有关您用于执行这些查询的代码的任何信息,因此很难准确地告诉您如何修改代码来执行此操作。如果您可以向我们展示您的代码,我可以向您展示如何让它完成您需要的工作。

    【讨论】:

    • 好的。只是我认为可以使用一个 Xpath 表达式来做到这一点。感谢您的回答@JLRishe
    猜你喜欢
    • 1970-01-01
    • 2011-05-25
    • 2018-08-24
    • 1970-01-01
    • 1970-01-01
    • 2018-05-06
    • 2016-05-05
    • 2011-02-06
    • 2021-06-28
    相关资源
    最近更新 更多