结果之间有空格的 xmlstarlet

标签 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 

最佳答案

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

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

然后你会在每个文件后面看到一个空格:

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

关于结果之间有空格的 xmlstarlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28488698/

相关文章:

excel - 有没有办法在 Mac 上使用 VBscript 代码将 CSV 转换为 XLS?

xml - 在浏览器中查看 xsl 的输出

css - 获取内联 CSS 背景图像

python - 如何使用 Python 下载文件?

java - XML 中的空白

xml - 如何在 XSLT 转换中为元素的默认数据类型添加属性 "type"

c++ - Windows在创建进程时如何通过ANSI命令行?

java - 如何使用 Spring 的 JaxWsPortProxyFactoryBean 忽略无效的 xml 响应

java - 如何将 XSLT 转换为带有编码数据的纯文本?

java - 全屏DialogFragment不适合屏幕