加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

使用xpath进行bash XHTML解析

发布时间:2020-12-15 19:00:00 所属栏目:安全 来源:网络整理
导读:我正在编写一个小脚本来学习如何解析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 我如何: 需要编写我
我正在编写一个小脚本来学习如何解析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

回声结果:

<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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读