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

本文关键字:空格 Xpath 何使用 文本 | 更新日期: 2023-09-27 18:37:09

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

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

使用 XPath

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

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

这将返回您要查找的p集,但其文本内容将保持原样。如果随后想要获取没有重复空格的文本值,可以循环访问此节点集并从值中逐个去除空格。您尚未告诉我们有关用于执行这些查询的代码的任何信息,因此很难准确告诉您如何修改代码以执行此操作。如果你能向我们展示你的代码,我可以告诉你如何让它做你需要的事情。