从shell脚本中提取xml文件中的单个标记

时间:2012-11-23 12:57:19

标签: xml bash

我有一堆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。

2 个答案:

答案 0 :(得分:0)

我从其他问题中找到了答案:

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

注意://后面的内容不是任何评论; xmlstarlet只有非常奇怪的语法。

答案 1 :(得分:0)

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

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