繁体   English   中英

从Shell脚本中的xml文件中提取单个标签

[英]Extract a single tag from an xml file from a shell script

我有一堆XML文件,我想从中提取单个标签并保存到文本文件中。 即,我该怎么转

manifest.xml:

<package>
        <description brief="Moving Horizon Estimator for the kite carousel">

    dynamicMHE - MHE for the kite carousel, with dynamic model

        </description>
        <author>rsetrsntrstn</author>
        <license>LGPL</license>
        <review status="unreviewed" notes=""/>
        <url>TODO</url>

        <!-- RTT & OCL integration -->
        <depend package="rtt_rosnode"/>
        <depend package="rtt_std_msgs"/>
        <depend package="rtt_rosnode"/>

        <!-- RTT & OCL -->
        <depend package="rtt"/>
        <depend package="ocl"/>

</package>

进入

readme.txt:

dynamicMHE - MHE for the kite carousel, with dynamic model

从shell脚本以一种简单的方式。 我不想学习任何有关xml解析器的知识; 本练习的全部重点是从我们的代码库中删除所有xml。

我通过查看其他问题才知道:

 xmlstarlet sel -t -v //description manifest.xml > readme.txt 

注意://之后的内容不是任何形式的注释; xmlstarlet的语法非常奇怪。

xmllint可用于运行xpath expresson以从XML文件的任何部分提取信息:

xmllint --xpath "string(/package/description)" manifest.xml > readme.txt

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM