【发布时间】:2015-06-20 02:14:03
【问题描述】:
我有一个要解析为 csv 的 xml,就像我开始使用 awk 一样,我想继续使用它,但我知道可以使用 perl 之类的语言来完成它,我也找到了 xmlstarlet,但我没有在服务器上安装的权限,所以我对解决方案持开放态度。 所以我的 iinput xml 是
<?xml version="1.0"?>
<root>
<record>
<id_client>50C</id_client>
<data>
<mail>1@mail.com</mail>
<adress>10 </adress>
<num_tel>001</num_tel>
<key>C</key>
<contact>
<name>toto</name>
<birth>01/30/009</birth>
<city>London</city>
</contact>
</data>
<data>
<mail>2@gmaiil.com</mail>
<adress>20</adress>
<num_tel>02200</num_tel>
<key>D1</key>
<contact>
<name>tata</name>
<birth>02/08/2004</birth>
<city>Bruges</city>
</contact>
</data>
</record>
<record>
<id_client>70D</id_client>
<data>
<mail>3@gmail.com</mail>
<adress>7Bcd</adress>
<num_tel>5555</num_tel>
<key>D2</key>
<contact>
<name>titi</name>
<birth>05/07/2014</birth>
<city>Paris</city>
</contact>
</data>
<data>
<mail>4@gmail.com</mail>
<adress>888</adress>
<num_tel>881.0</num_tel>
<key>D3</key>
<contact>
<name>awk</name>
<birth>05/08/1999</birth>
<city>Lisbone</city>
</contact>
</data>
我想将这个 csv 与听众一起输出到一个过度文件中
id_client;mail;num_tel;key
50C;1@mail.com;001;C
50C,2@gmail.com;02200;D1
70D;3@gmail.com;5555;D2
70D;4@gmail.com;881.0;D3
【问题讨论】:
-
XML 看起来有点损坏。缺少
</record>标签,应该是结束</root>标签是一个开始<root>,而第二条记录中的</key>标签只有一半。实际输入数据是否也损坏了,还是只是示例? -
这是我的错误,我纠正了它,但是文件在生成时没有损坏
-
好的。您是否可以访问任何 XML 处理工具,例如 xsltproc、xalan、xmllint 或 xmlstarlet?您不想使用 awk 或其他纯文本工具来执行此操作。你能从 CPAN 安装 Perl 模块吗?如果一切都失败了,你可以访问 Python 吗?
-
我没有安装任何东西的权限,因为它是客户服务器,只是放置我的文件并使用它。你误读了我我想使用 awk 因为我开始理解语法
-
我认为我们没有误读您:awk 只是解决 (xml) 问题的一个坏方法。 XML 数据需要真正理解 XML 的工具。