如何在使用Xpath的文本匹配期间忽略双白空格

时间:2015-01-12 13:56:11

标签: c# html xpath

我有一个像这样的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')] 但不幸的是,在某些文字的任何地方都有#34;内部元素p可以是双白空格。所以我需要在匹配过程中忽略它们。我知道我可以像这样translate(normalize-space(//div/p), ' ', '')使用Xpath表达式但它会找到所有元素p并且只是替换双白空格而不匹配&#34;一些文本&#34;! 是否有可能匹配&#34;某些文字&#34;但是在同一时间忽略双倍空格?

1 个答案:

答案 0 :(得分:2)

使用XPath 1.0选择一组节点时,XPath无法更改结果中返回的节点。您只能按原样选择节点。在进行选择时,您可以使用以下内容忽略双精度空格:

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

这将返回您正在寻找的p s集,但其文本内容将保留原来的状态。如果您希望获得没有重复空格的文本值,则可以遍历此节点集并逐个从值中删除空格。您没有告诉我们您用于执行这些查询的代码,因此很难准确地告诉您如何修改代码来执行此操作。如果您可以向我们展示您的代码,我可以向您展示如何让它完成您所需的代码。