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

胡安·门德斯

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

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

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

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

但是他们什么也没返回。我看到这个答案XPath contains(text(),'some string')当与具有多个Text子节点的节点一起使用时不起作用,但是我不知道如何在我的情况下使用它。

哈波

以下表达式将使您接近:

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>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

查找带有换行符的提交消息

带有html内容的邮件显示换行符或忽略换行符

将带有换行符和制表符的JavaScript字符串添加到HTML元素

插入带有换行符的字段

查找带有以特定模式的下划线开头的单词的换行符

相邻的JSX元素必须包装在带有换行符的封闭标签中

为什么带有换行符的PRE元素在输出中不产生空行?

CSS伪元素内容值,通过Javascript插入的attr带有换行符

div元素中带有换行符的文本不起作用

Python读取带有换行符和段落分隔元素的文本文件

HTML元素的子元素在换行符上具有不同的背景

T-SQL查找带有单行换行符的字符串(缺少回车符)

无法在字符串中打印带有换行符的换行符

来自 MYSQL 查询的带有换行符很长的字符串的 InnerHTML 换行符

Python将字符串(带有换行符)转换为HTML

Jekyll-带有换行符的Markdown不在HTML中呈现

使文本出现在带有换行符的 html 表格单元格中

PHP:如何使用带有HTML Purifier的nl2br()来保持换行符?

如何使用Scriplet在HTML页面中显示带有换行符的字符串?

无法找出带有换行符的正则表达式-HTML

如何防止HTML元素的换行符中只有一个吊词?

在richtextbox中查找所有换行符

如何获取带有换行符的变量的输出?

为什么xargs输出带有换行符的结果?

如何使用 FastAPI 返回带有换行符的响应?

Flexbox:使带有换行符的文本水平居中

带有换行符的 grep -v 未按预期运行

ksh提示定义为带有换行符的函数

使用QDesktopServices :: openUrl发送带有换行符的邮件