在shell中从xml中提取值 [英] Extract value from xml in shell

查看:50
本文介绍了在shell中从xml中提取值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我必须遵循 xml 结构:

I have to following xml structure:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE DOC SYSTEM "ts.dtd">
<?xml-stylesheet type="text/css" href="ts.css"?>
<DOC LOCALE="en-US"> 
   <PTXT ID="some.first.id" CONTEXT="">Some text 1</PTXT> 
   <PTXT ID="some.second.id" CONTEXT="">Some text 2</PTXT> 
</DOC>

现在我的挑战是在每个 PTXT 标签上循环并使用 ID 和内部文本做一些事情.出于示例目的,我们只是说我需要回显类似

Now my challenge is to loop on every PTXT tag and do something with the ID and the inner text. For example purposes, let's just say that I need to echo something like

some.first.id Some text 1
some.second.id Some text 2

如何在 shell 脚本中使用它?

How can I have that in a shell script?

推荐答案

完整的解决方案 xmlstarlet 工具:

Complete solution with xmlstarlet tool:

xmlstarlet sel -t -m "//PTXT" -v "concat(./@ID,' ',text())" -n input.xml 2>/dev/null

输出:

some.first.id Some text 1
some.second.id Some text 2

这篇关于在shell中从xml中提取值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆