当我有这样的 XML 文件时:
<guests>
<guest>
<name>Adam</name>
<music>Silence</music>
<dish>Vegetables</dish>
<beverage>Water</beverage>
</guest>
<guest>
<name>Brutus</name>
<music>Verdi</music>
<dish>Meat</dish>
<beverage>Mulsum</beverage>
</guest>
</guests>
是否已经有一种优雅的 bash-y 方式将其格式化为表格?我想象它是这样的:
cat myPartyGuests.xml | xmlToTable --lines "/guests/guest" --columns "name, beverage, dish"
这给出了这样的东西:
name beverage dish
Adam Water Vegetables
Brutus Mulsum Meat
我已经知道,如果我可以将 XML 转换成这样的形式:
name;beverage;dish
Adam;Water;Vegetables
Brutus;Mulsum;Meat
...我可以column -s\; -t
用来获得我想要的输出,所以只有“XML to CSV”步骤丢失了。
一种解决方案是使用 XSL 样式表使用 XSL 转换。
或者编写一个简单的 Python 脚本:
使用安装
untangle
,pip3 install --user untangle
使脚本可执行,然后运行:或使用
xmltodict
:我正在使用
untangle
或xmltodict
代替内置 XML 库,因为我发现那些更易于使用。当然,这可以使用任何其他 scipting 语言来完成。