gpt4 book ai didi

arrays - 获取节点各部分的Xpath

转载 作者:数据小太阳 更新时间:2023-10-29 02:39:41 25 4
gpt4 key购买 nike

我是 XPath 的新手,如果这对您来说是个愚蠢的问题,我深表歉意。我需要从第一个 span class="price"

中提取一个没有“$”的价格
<span class="price">
<span class="sup">$</span>
1
<span class="currency-delimiter">.</span>
<span class="sup">23</span>
</span>
<span class="price">
<span class="sup">$</span>
4
<span class="currency-delimiter">.</span>
<span class="sup">56</span>
</span>
<span class="price">
<span class="sup">$</span>
7
<span class="currency-delimiter">.</span>
<span class="sup">89</span>
</span>

我自带的Xpath是

//span[@class='price'])[1]

但它给了我每个元素的数组 [$][1][.][23]我只需要 1.23 不带“$”。你可以帮帮我吗?谢谢!

最佳答案

在 XPath 1.0 中,您可以在节点上使用 string 函数来获取其中的所有文本。例如string(//span[@class='price'][1])(如果您在节点集上使用它,也就是节点数组,它将自动仅应用于第一个节点。 See the official specification 了解更多详情。)

请注意,这将包括所有空格(即 '\n $\n 1\n .\n 23\n',其中 \n 表示换行符,因此您可能希望使用 normalize-space function 删除前导空格并将每个其他空格实例替换为单个空格字符,这将使结果更像 $ 1 . 23

现在,要从开头删除 $ 字符,我建议使用 substring-after function ,因此无论您是否使用上述 normalize-space 函数都无关紧要,例如:substring-after(normalize-space(string(//span[@class= '价格'])), '$')

现在,值得注意的是 substring-after(和 normalize-space)将隐式调用 string 函数,因此您可以安全地忽略这个,只使用 substring-after(normalize-space(//span[@class='price']), '$ ')。在此示例中,我将 substring-after 的第二个参数更改为 $,这样 $ 之后的空格也将被删除。

关于arrays - 获取节点各部分的Xpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34321082/

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