gpt4 book ai didi

dom - 由 br 连接的 XPath 节点文本

转载 作者:行者123 更新时间:2023-12-03 17:21:06 31 4
gpt4 key购买 nike

如何通过 br 再次加入 br 标签之间的文本节点。

这是xml代码

<div>
text1.
<br>
text2.
<br>
text3.
<div>ad sense code</div>
<br>
text4.
<div>ad sense code</div>
<br>
textxx.
<br>
</div>

我需要让所有文本节点 text2 到由 br 标签或\n\n 加入的 textxx。

我可以得到所有的文本,但没有使用任何分隔符加入
//div/text()[position()>1] 但结果如下:
text1.text2.text3.text4.textxx.

虽然我想要这样:
text1.<br>text2.<br>text3.<br>text4.<br>textxx.<br>

只是我需要保留 br 标签。
我正在使用 Perl HTML::TreeBuilder::LibXML 模块。

最佳答案

XPath 可用于 (a) 从输入文档中选择节点,或 (b) 从输入文档中的节点计算原子值,例如字符串、 bool 值或数字。它永远不会 [有非常极端的异常(exception)情况] 返回输入中不存在的节点。

您希望的输出是什么意思并不完全清楚

text1.<br>text2.<br>text3.<br>text4.<br>textxx.<br> 

你在寻找这个作为一个字符串吗?还是一串散布的文本节点和元素节点?

在 XPath 3.1 中可以使用 serialize() 将其作为字符串返回。函数,但在 Perl 中,您只能访问古老而有限的 XPath 1.0。

无法将其作为一组节点返回,因为源中不存在这些节点:源包含具有诸如 "__text1__" 之类的值的文本节点其中下划线代表空格,您想要的输出删除空格。

您似乎在进行转换,而不仅仅是选择,因此您已经脱离了 XPath 领域并进入了 XSLT。

关于dom - 由 br 连接的 XPath 节点文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57715699/

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