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

时间:2015-01-03 14:52:27

标签: xml xml-parsing xmlstarlet

显示如何将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>

object / keyF将返回val_1F,但我需要&#34; val_1F&#34;

1 个答案:

答案 0 :(得分:3)

您只需添加";,唯一的复杂因素是"需要转义,因此shell不会解释它:

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