gpt4 book ai didi

html - 如何使用XPath 1.0在同一行的节点中获取所有文本

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

<a href="/company/10676229" 
onclick="javascript:_paq.push(['trackEvent', 'SearchSuggestions']);"
title="View company">
<strong>RECRUIT</strong>
" ZONE "
<strong>RECRUITMENT</strong>
" LIMITED "

</a>


我试图以 "RECRUIT ZONE RECRUITMENT LIMITED"形式从节点上方提取文本-全部在一行上-但到目前为止只能将它们放在单独的行上。由于我运行了几百条这样的记录,所有记录都有不同的粗体和常规文本模式,因此,如果我可以使用XPath表达式直接提取一行上的所有文本,而不必使用加载,那就很好了然后尝试将它们串联在一起。卡在XPath 1.0中。

我觉得会有一种表达可以做到这一点,但是到目前为止,我一直在努力地进行研究,不确定要尝试什么。

到目前为止,我已经尝试过:

//a[@title="View company"]//text()[normalize-space()]


它返回一个列表,但文本已被分隔开,因此所有粗体文本与每个节点的其余行都显示在不同的行上

最佳答案

XPath 1.0

正如@Andersson(+1)回答的那样,此XPath,

normalize-space(//a[@title="View company"])


将返回

RECRUIT " ZONE " RECRUITMENT " LIMITED "


用于您的问题中显示的标记。

在评论中,您曾说过您的实际标记将包含多个这样的 a元素,并且您希望为每个元素选择并类似地获取文本。单独使用XPath 1.0是不可能的。您将必须遍历所选节点并以托管语言对其进行处理。在XPath 1.0中,所有此类 a元素中只有第一个将由 normalize-space()处理。

XPath 2.0

XPath 2.0可以使用此XPath处理任务,

//a[@title="View company"]/normalize-space()


对于上一步中选择的每个节点,将应用 normalize-space(),它首先获取字符串值,然后修剪前导和尾随空间并合并内部空间。

关于html - 如何使用XPath 1.0在同一行的节点中获取所有文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51946394/

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