如何在使用 Xpath 进行文本匹配时忽略双空格
how to ignore double white-spaces during text matching using 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')]
但不幸的是,元素 p 内 "some text" 的任何地方都可以是双空格。所以我需要在这个匹配过程中忽略它们。我知道我可以像这样使用 Xpath 表达式 translate(normalize-space(//div/p), ' ', '')
但它会找到所有元素 p 并且只替换双空格而不匹配 "some text"!
是否可以匹配 "some text" 但同时忽略双空格?
当使用 XPath 1.0 selecting 一组节点时,XPath 无法更改结果中 returned 的节点。您只能 select 个节点,因为它们已经存在。在执行 selection 时,您可以使用以下命令忽略双空格:
//div/p[contains(normalize-space(), 'some text')]
这将 return 您要查找的 p
组,但它们的文本内容将保持原样。如果您随后想获得没有重复空格的文本值,您可以遍历此节点集并从值中逐一去除空格。您还没有告诉我们任何有关您用于执行这些查询的代码的信息,因此很难准确地告诉您您将如何修改代码来执行此操作。如果您可以向我们展示您的代码,我可以向您展示如何让它执行您需要的操作。
我有这样的 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 内 "some text" 的任何地方都可以是双空格。所以我需要在这个匹配过程中忽略它们。我知道我可以像这样使用 Xpath 表达式 translate(normalize-space(//div/p), ' ', '')
但它会找到所有元素 p 并且只替换双空格而不匹配 "some text"!
是否可以匹配 "some text" 但同时忽略双空格?
当使用 XPath 1.0 selecting 一组节点时,XPath 无法更改结果中 returned 的节点。您只能 select 个节点,因为它们已经存在。在执行 selection 时,您可以使用以下命令忽略双空格:
//div/p[contains(normalize-space(), 'some text')]
这将 return 您要查找的 p
组,但它们的文本内容将保持原样。如果您随后想获得没有重复空格的文本值,您可以遍历此节点集并从值中逐一去除空格。您还没有告诉我们任何有关您用于执行这些查询的代码的信息,因此很难准确地告诉您您将如何修改代码来执行此操作。如果您可以向我们展示您的代码,我可以向您展示如何让它执行您需要的操作。