使用xmlstarlet将xml转换为csv

8yoxcaq7  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(117)

我正在尝试使用xmlstarlet将.xml转换为.csv。我的文件名是test.xml。.xml数据是这样的:

<?xml version = '1.0' encoding = 'UTF-8'?>
<ws_export xmlns="http://ws_export.ws.localhost/">
   <Records>
      <item>
         <CodIO>02360236</CodIO>
         <DescIO>023608 SAP- Stazione</DescIO>
         </item>
   </Records>
</ws_export>

字符串
我看过一个例子here,但是这个例子中的.xml文件的id是渐进数字。
我尝试了一些像这样的bash命令:

xmlstarlet \
    sel -T -t -m /Records/item\
      -v "concat(CodIO,';',DescIO)" \
      -n test.xml > test.csv


理论上,它应该生成一个.csv文件,其中包含“CodIO,DescIO”列。但它根本不起作用,我在bash语法中犯了一个明显的错误,但由于我的知识有限,我无法精确定位它。你能帮帮我吗?
编辑以添加我想要的输出:
测试.csv文件,列为:
CodIO、DescIO

3pmvbmvn

3pmvbmvn1#

好了,在改进了我的xml-foo之后,我已经提出了一个bash,它可以工作并产生我想要的东西:

xmlstarlet sel -N x="http://ws_export.ws.localhost/" -t -m "//x:item" -v "x:CodIO" -o ";" -v "x:DescIO" -n test.xml > test.csv

字符串
基本上,我所要做的就是列出所有列的名称,以及一个语法正确的分隔符,并声明我在第一次尝试中没有正确的WS操作。

相关问题