1
我寫了一個表達式來將我的xml解析爲CSV,但它不起作用,請幫助我。我這樣做是因爲我不能在服務器上使用像xmlstarlet這樣的解析器。正確的awk表達式將xml解析爲csv
這裏是我的xml
<?xml version="1.0"?>
<root>
<record>
<country>US</country>
<data>
<id_client>50C</id_client>
<mail>[email protected]</mail>
<adress>10 </adress>
<num_tel>001</num_tel>
<name>toto</name>
<birth>01/30/008</birth>
</data>
<data>
<id_client>100K</id_client>
<mail>[email protected]</mail>
<adress>10 </adress>
<num_tel>002</num_tel>
<name>toto2</name>
<birth>01/30/011</birth>
</data>
</ record>
<record>
<country>China</country>
<data>
<id_client>99E</id_client>
<mail>[email protected]</mail>
<adress>10 </adress>
<num_tel>003</num_tel>
<name>toto3</name>
<birth>01/30/0008</birth>
</data>
<data>
<id_client>77B</id_client>
<mail>[email protected]</mail>
<adress>10 </adress>
<num_tel>004</num_tel>
<name>toto4</name>
<birth>2001/05/01</birth>
</data>
</record
</root>
輸出我需要:
country;id_client;name
US;50C;toto1
US;100K;toto2
China;99E;toto3
China77B;toto4
而且finaly我的語法我'嘗試更新:
/<country>/{sub(".*<country[^>]+><[^>]+>","",$0);sub("<.*","",$0);s=s";"$0}/<\/country>/{sub("^;","",s);print s;s=""}
你有服務器上的perl嗎?還是python?還是紅寶石? *任何*這些更適合這項任務(他們支持* actual * xml),那麼awk就是。 –
@EtanReisner還有一個用於gawk的XML庫。請參閱http://awk.info/?Xgawk和http://sourceforge.net/projects/gawkextlib/files/xgawk/。警告:我從來沒有使用過,這是我所知道的。 –
@EdMorton感謝您的鏈接。我知道我以前曾見過它,但當我想參考它時,卻一直未能再次找到它。 –