我如何使用一些的bash/shell腳本,改變這個輸入解析特定的XML到CSV格式
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<runJobReturn xmlns="http://xml.org" xmlns:ns1="http://xml.org" xsi:type="ns1:runJobReturn">
<ns1:item xsi:type="ns1:ArrayOf_xsd_string">
<ns1:item xsi:type="xsd:string">15-02-2013</ns1:item>
<ns1:item xsi:type="xsd:string">Benjamin</ns1:item>
<ns1:item xsi:type="xsd:string">MASSY</ns1:item>
</ns1:item>
<ns1:item xsi:type="ns1:ArrayOf_xsd_string">
<ns1:item xsi:type="xsd:string">15-02-2013</ns1:item>
<ns1:item xsi:type="xsd:string">Ronald</ns1:item>
<ns1:item xsi:type="xsd:string">MASSY</ns1:item>
</ns1:item>
<ns1:item xsi:type="ns1:ArrayOf_xsd_string">
<ns1:item xsi:type="xsd:string">15-02-2013</ns1:item>
<ns1:item xsi:type="xsd:string">Zachary</ns1:item>
<ns1:item xsi:type="xsd:string">MASSY</ns1:item>
</ns1:item>
<ns1:item xsi:type="ns1:ArrayOf_xsd_string">
<ns1:item xsi:type="xsd:string">12</ns1:item>
<ns1:item xsi:type="xsd:string">13</ns1:item>
</ns1:item>
<ns1:item xsi:type="ns1:ArrayOf_xsd_string">
<ns1:item xsi:type="xsd:string">12</ns1:item>
<ns1:item xsi:type="xsd:string">13</ns1:item>
</ns1:item>
</runJobReturn>
</soapenv:Body>
的輸出:
15-02-2013|Benjamin|MASSY
15-02-2013|Ronald|MASSY
15-02-2013|Zachary|MASSY
12|13
12|13
輸入來自捲曲。我試過使用sed: echo $ INP | tr -d「\ n」| SED -e 'S/< [^>] *>/\ N/G' 但在輸出保持值相乘
不要使用regex/sed/awk來處理xml。和[重複](http://stackoverflow.com/questions/13317053/how-should-i-go-about-converting-xml-into-csv) – BeniBela 2013-02-15 12:26:41