我正在使用此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
答案 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