2014-03-14 56 views
0

我有一个XML文件,我试图将其转换为更类似于CSV格式的东西(以及将输出放在具有共同分隔符的单行上的某种格式),但是我不能完全得到正确的语法,任何人都可以帮忙吗? 的XML看起来是这样的:使用xmlstarlet从XML中进行选择 - 语法查询

<?xml version="1.0" encoding="UTF-8"?> 
<TranslationTable> 
     <Translation Key="Document1" RelativePath="/home/path1"> 
       <Title>Doc1</Title> 
       <Description>First document</Description> 
     </Translation> 
     <Translation Key="Document2" RelativePath="/home/path2"> 
       <Title>Doc2</Title> 
       <Description>Second document</Description> 
     </Translation> 
</TranslationTable> 

而我目前的命令是这样的

xmlstarlet sel -t -m //Translation -v @Key -o "|" -v @RelativePath -n /root/XML/file.xml 
Document1|/home/path1 
Document2|/home/path2 

但我想是还包括标题字段的内容,从而使输出像这样

Document1|/home/path1|Doc1 
Document2|/home/path2|Doc2 

任何人都可以帮忙吗?谢谢。

回答

1

这是XPath

xmlstarlet sel -t -m //Translation -v @Key -o "|" -v @RelativePath -v 'Title/text()' -n /root/XML/file.xml 
+0

这似乎已经完成了招,非常感谢。 – user3419089

+0

不客气。我希望xmlstarlet的'语言'更容易... – reinierpost

相关问题