使用xpath进行bash XHTML解析

前端之家收集整理的这篇文章主要介绍了使用xpath进行bash XHTML解析前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个小脚本来学习如何解析XHTML网页.以下命令: @H_301_1@cat q?s=goog.xhtml | xpath '//span[@id="yfs_l10_goog"]'

收益:

@H_301_1@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:

尝试一下:

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

编辑:

管道您的输出

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

原始答案:

使用xmlstarlet

@H_301_1@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']"

查询结果:

@H_301_1@624.50

回声结果:

@H_301_1@<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的结果:

@H_301_1@<?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>

其他查询

@H_301_1@$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相关文章