使用值上的双引号将 XML 转换为带有 xmlstarlet 的 CSV



这显示了如何将xml转换为CSV

http://www.joyofdata.de/blog/transforming-xml-document-into-csv-using-xmlstarlet/

xmlstarlet 
  sel -T -t -m /root/record 
  -v "concat(@id,';',object/keyF,';',object/keyG)" 
  -n test.xml

但是,我的某些值在值中带有逗号。 如何让我的 CSV 正确解析? 有没有办法在 KeyF 值中添加双引号? 如果是这样,语法是什么?

  <keyF>val_1F</keyF>

对象/键F 将返回val_1F,但我需要"val_1F"

您只需将";一起添加,唯一额外的复杂性是需要转义",以便shell不会解释它:

xmlstarlet 
  sel -T -t -m /root/record 
  -v "concat('"', @id,'";"',object/keyF,'";"',object/keyG, '"')" 
  -n test.xml

最新更新