2013-02-19 83 views
3

用xml_grep從一個特定的元素中獲取特定屬性的值是否可能(如果是這樣,如何)?我似乎只能在標籤之間輸出信息。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> 

輸出的值(在這種情況下:13021912354)中的 'nationalnumber'屬性從' identity'元件

回答

5

隨着xmllint

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

對於debian發行版(或衍生產品)xmllintlibxml2-utils包的一部分,可以這樣安裝:

apt-get install libxml2-utils

+1

非常感謝你,這正是我一直在尋找的! – sarkasper 2013-02-19 14:12:38

+0

對我來說,只有當我使用這裏給出的答案時纔有效:http://stackoverflow.com/a/11906002/1306012 – 2016-10-17 12:27:50

+0

@ gilles-quenot對於多個''在單個文件中,如果我想提取'dateofbirth '特別是'nationalnumber' .....我應該怎麼做到這一點? – 2016-11-22 11:40:13

2

,我已經安裝了RHEL6.3似乎並不具備這種魔法--xpath選項xmllint的版本。什麼版本的xmllint爲此選項提供支持?

+0

xmllint:使用libxml版本20800 – sarkasper 2013-03-14 18:01:52