xmlstarlet,结果之间有空格

时间:2015-02-12 22:03:28

标签: xml xpath command-line xmlstarlet

我正在使用此xmlstarlet命令:

xmlstarlet sel -t -m "//path"  -v "dir" -o "" -v "file" 

关于此XML结构

<pathlist>
 <path>
  <dir>C:\</dir>
  <file>file1.txt</file>
 </path>
 <path>
  <dir>C:\</dir>
  <file>file2.txt</file>
 </path>
</pathlist>

我得到了结果:

C:\file1.txtC:\file2.txt 

作为一个字符串,但两个路径名之间没有任何空格。 什么是正确的xmlstarlet命令仍然得到一个字符串,但路径名之间的空格如下:

C:\file1.txt C:\file2.txt 

1 个答案:

答案 0 :(得分:2)

-o XPath之后移动file输出开关,并给它一个空格而不是空字符串参数:

xmlstarlet sel -t -m "//path"  -v "dir" -v "file" -o " " in.xml

然后您将在每个file之后获得一个空格:

C:\file1.txt C:\file2.txt

更新

如果您事先知道要加入单个字符串的路径数,可以使用concat()

xml.exe sel -t -v "concat(//path[1]/dir, //path[1]/file, ' ', //path[2]/dir, //path[2]/file)" in.xml