我有一个XML文件,我试图将其转换为更像CSV格式的东西(有些格式将输出放在一个带有公共分隔符的行上),但我无法得到语法正确,有人可以帮忙吗? 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
但我喜欢的还包括Title字段的内容,以便输出就像这样
Document1|/home/path1|Doc1
Document2|/home/path2|Doc2
有人可以帮忙吗?感谢。
答案 0 :(得分:1)
它是XPath:
xmlstarlet sel -t -m //Translation -v @Key -o "|" -v @RelativePath -v 'Title/text()' -n /root/XML/file.xml