我正在编写一个小脚本来学习如何解析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>
我如何:
编辑2:
原文链接:https://www.f2er.com/bash/387012.html尝试一下:
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
回声结果:
<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的结果:
<?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