gpt4 book ai didi

用于选择给定节点中的所有文本及其子节点的文本的 XPath 表达式

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

基本上我需要抓取一些带有嵌套标签的文本。

像这样的东西:

<div id='theNode'>
This is an <span style="color:red">example</span> <b>bolded</b> text
</div>

我想要一个会产生这个的表达式:
This is an example bolded text

我已经为此苦苦挣扎了一个小时或更长时间,但没有结果。

任何帮助表示赞赏

最佳答案

string-value元素节点的字符串值是元素节点的所有文本节点后代按文档顺序的串联。

您要调用 XPath string() div 元素上的函数。

string(//div[@id='theNode'])

您也可以使用 normalize-space功能以减少由于源文档中的换行和缩进而可能出现的不需要的空格。这将删除前导和尾随空格,并用单个空格替换空格字符序列。当您将节点集传递给 normalize-space() 时,节点集将首先转换为它的字符串值。如果没有参数传递给 normalize-space,它将使用上下文节点。
normalize-space(//div[@id='theNode'])

// if theNode was the context node, you could use this instead
normalize-space()

您可能希望使用比我一直使用的示例 XPath 更有效的方式来选择上下文节点。例如,以下 Javascript 示例可以在某些浏览器中针对此页面运行。
var el = document.getElementById('question');
var result = document.evaluate('normalize-space()', el, null ).stringValue;
span 之间的纯空白文本节点和 b元素可能有问题。

关于用于选择给定节点中的所有文本及其子节点的文本的 XPath 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10424117/

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