xml - 获取 xmllint 以输出 xpath 结果\n-separated,用于属性选择器

标签 xml parsing shell

如何让 xmllint 输出属性“每行”的 xpath 选择器的多个结果?

举个例子:

  <?xml version="1.0" encoding="ISO-8859-1"?>
  <config>
          <tagX key1="value1 " key2=" value2"/>
          <tagY key3="value3" key4=" value4 "/>
  </config>


  $ xmllint example.xml --xpath "/config/*/@*"

结果是:

   key1="value1 " key2=" value2" key3="value3" key4=" value4 "

我想得到的是:

   key1="value1 "
   key2=" value2"
   key3="value3"
   key4=" value4 "

我是否需要在偶数引号后进行拆分,或者是否有更简洁的方法来执行此操作?

有一个相关问题,about the same subject除了它是关于挑选<tag>value</tag>的内容,而不是 <tag attribute="value" />

最佳答案

你可以试试:

$ xmllint --shell inputfile <<< 'cat /config/*/@*'

不过,您可能需要 grep 输出,以过滤不需要的行。

关于xml - 获取 xmllint 以输出 xpath 结果\n-separated,用于属性选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17965071/

相关文章:

xml - 使用 xslt 将两个节点转换为一个节点

c# - 在 C# 中使用 XML 文字?

linux - 多行的最大值并使用 Awk 计算它们之间的平均值

python - 使用 Robot 框架,如何解析 XML 并验证数据?

XML 架构 : comparing to date elements

PHP DateTime 明年第一天

java - 具有多个分隔符的 Split()(不起作用)

java - Java中如何解析字符串?

linux - 在/etc/environment文件中设置环境变量,值为 "#"字符

git - 如何以编程方式确定当前 checkout 的 Git 分支