当前位置:  开发笔记 > Android > 正文

使用unix终端解析XML

如何解决《使用unix终端解析XML》经验,为你挑选了4个好方法。

有时我需要从XML文件中快速提取一些任意数据以放入CSV格式.在Unix终端中执行此操作的最佳做​​法是什么?我会喜欢一些代码示例,所以例如如何才能解决以下问题?

示例XML输入:





我想要的CSV输出:

Foo,
Bar,

jelovirt.. 12

彼得的答案是正确的,但它会输出一个尾随换行符.


  
  
    
      
      ,
      
        

      
    
  

只是运行例如

xsltproc stylesheet.xsl source.xml

将CSV结果生成为标准输出.



1> jelovirt..:

彼得的答案是正确的,但它会输出一个尾随换行符.


  
  
    
      
      ,
      
        

      
    
  

只是运行例如

xsltproc stylesheet.xsl source.xml

将CSV结果生成为标准输出.



2> Peter Hilton..:

使用命令行XSLT处理器(如xsltproc,saxon或xalan)来解析XML并生成CSV.这是一个示例,对于您的情况是样式表:



    

    
        
    

    
        
            
            
        
        

     



3> 小智..:

如果您只想要任何元素的名称属性,这里有一个快速但不完整的解决方案.

(您的示例文本位于文件示例中)

grep"name"示例| cut -d"\"" - f2,2 | xargs -I {} echo"{},"



4> DaveP..:

XMLStarlet是一个命令行工具包,用于查询/编辑/检查/转换XML文档(有关更多信息,请参阅http://xmlstar.sourceforge.net/)

没有要写的文件,只需将文件传输到xmlstarlet并应用xpath过滤器.

cat file.xml | xml sel -t -m'xpathExpression'-v'lemName'' literal'-v'elname'-n -m expression -v value''included literal -n newline

所以对于你的xpath,xpath表达式将是// myel/@ name,它将提供两个属性值.

非常方便的工具.

HTH

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有