gpt4 book ai didi

bash 使用 xpath 解析 XHTML

转载 作者:行者123 更新时间:2023-11-29 08:50:19 26 4
gpt4 key购买 nike

我正在编写一个小脚本来学习如何解析 XHTML 网页。以下命令:

cat q?s=goog.xhtml | xpath '//span[@id="yfs_l10_goog"]'

返回:

Found 2 nodes:
-- NODE --
<span id="yfs_l10_goog">624.50</span>-- NODE --
<span id="yfs_l10_goog">624.50</span>

我如何:

  • 需要编写我的命令以便仅提取值 624.50 吗?

  • 我需要做什么才能只提取一次?

我正在解析的源页面:http://finance.yahoo.com/q?s=goog

最佳答案

编辑 2:

试一试:

xpath -q -e '//span[@id="yfs_l10_goog"][1]/text()'

编辑:

通过管道输出:

sed -n '/span/{s/<span[^<]*>\([^<]*\)<.*/\1/;p;q}'

原答案:

使用 xmlstarlet :

echo -e '<foo><span id="yfs_l10_goog">624.50</span>\n<bar>xyz</bar><span id="yfs_l10_goog">555.50</span>\n<span id="yfs_l10_goog">123.50</span></foo>' | 
xmlstarlet sel -t -v "//span[@id='yfs_l10_goog']"

查询结果:

624.50

echo的结果:

<foo><span id="yfs_l10_goog">624.50</span>
<bar>xyz</bar><span id="yfs_l10_goog">555.50</span>
<span id="yfs_l10_goog">123.50</span></foo>

xml fo 的结果:

<?xml version="1.0"?>
<foo>
<span id="yfs_l10_goog">624.50</span>
<bar>xyz</bar>
<span id="yfs_l10_goog">555.50</span>
<span id="yfs_l10_goog">123.50</span>
</foo>

其他查询:

$ echo -e '...' | xmlstarlet sel -t -v "//span[@id='yfs_l10_goog'][1]"
624.50
$ echo -e '...' | xmlstarlet sel -t -v "//span[@id='yfs_l10_goog'][3]"
123.50
$ echo -e '...' | xmlstarlet sel -t -v "//span[@id='yfs_l10_goog'][last()]"
123.50

关于bash 使用 xpath 解析 XHTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4984689/

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