gpt4 book ai didi

xpath - XPath查找带有HTML换行符的元素

转载 作者:行者123 更新时间:2023-12-03 16:37:12 25 4
gpt4 key购买 nike

我需要一个xpath,它将找到一些包含HTML换行符<br/>的文本。例如:

<ul>
<li>ABC<br/>DEF</li>
<li>XYZ<br/>NOP</li>
</ul>


假设我正在尝试查找包含 liABC<br/><DEF>。我尝试了以下方法:

$x("//li[normalize-space(.)='ABC DEF']")
$x("//li[text() ='ABC<br/>DEF']")
$x("//li[contains(., 'ABC DEF']")


但是他们什么也没返回。我看到了这个答案 XPath contains(text(),'some string') doesn't work when used with node with more than one Text subnode,但是我不知道该如何在我的情况下使用它。

最佳答案

以下表达式将使您接近:

li[br[preceding-sibling::node()[1] = 'ABC']
[starts-with(following-sibling::node()[1], 'DEF')]]


如果您只需要匹配文本以 ABC结尾的项目,则需要更长的时间。

以下转换将选择第一个匹配的 li

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" />

<xsl:template match="/">
<matches>
<xsl:copy-of select="(//li[br[preceding-sibling::node()[1] = 'ABC']
[starts-with(following-sibling::node()[1], 'DEF')]
])
[1]" />
</matches>
</xsl:template>

</xsl:stylesheet>


输入:

<ul>
<li>ABC<br/>DEF</li>
<li>XYZ<br/>NOP</li>
<li><p>XYZ<br/>NOP</p></li>
<li>ABC<br/>DEF</li>
<li>DEF GHI</li>
<li>ABC<![CDATA[<br/>]]>DEF</li>
</ul>


输出:

<?xml version="1.0" encoding="utf-8"?>
<matches>
<li>ABC<br />DEF</li>
</matches>

关于xpath - XPath查找带有HTML换行符的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20913257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com