xml_grep从element获取属性

时间:2013-02-19 13:58:43

标签: xml linux command-line grep xmllint

是否有可能(如果是这样,如何)使用xml_grep从特定元素获取特定属性的值?我似乎只能在标签之间输出信息。

示例:

    <eid>
       <identity nationalnumber="13021912354" dateofbirth="20130219" gender="male">
          <name>Menten</name>
          <firstname>Kasper</firstname>
          <middlenames>Marie J</middlenames>
          <nationality>Belg</nationality>
          <placeofbirth>Sint-Truiden</placeofbirth>
          <photo>base64-string</photo>
       </identity>
    </eid>

从'identity'-element

输出'nationalnumber'属性的值(在本例中为:13021912354)

2 个答案:

答案 0 :(得分:6)

使用xmllint

xmllint --xpath 'string(//identity/@nationalnumber)' file.xml

对于debian发行版(或衍生版)xmllintlibxml2-utils包的一部分,可以这样安装:

apt-get install libxml2-utils

答案 1 :(得分:2)

我在RHEL6.3上安装的xmllint版本似乎没有这个神奇的-xpath选项。什么版本的xmllint支持此选项?