xmlstarlet sel输出值之间的新行

Dan*_*any 8 xmlstarlet

我有以下XML

<process id="test">

</process>
<process id="test2">

</process>
Run Code Online (Sandbox Code Playgroud)

我确实从属性中获取了正确的值,但我希望用新行分隔它们以进行进一步处理.

使用命令时

xmlstarlet sel -t -v "count(process/@id" "example.xml)"
Run Code Online (Sandbox Code Playgroud)

我可以看到两者是分开的,因为它确实返回2

用于检索属性的命令如下

xmlstarlet sel -t -v "process/@id" "example.xml"
Run Code Online (Sandbox Code Playgroud)

题 :

可以使用每个属性的新行返回输出吗?如果不能用xmllint完成?

Dan*_*any 12

我在这看了2天,我找到了以下页面:

http://www.geekfarm.org/wu/muse/XmlStarlet.html

这给我澄清了很多

我使用以下命令来实现换行符

xmlstarlet sel -t -m "process" -n -v "@id" "example.xml"
Run Code Online (Sandbox Code Playgroud)

  • 要使用 `-n` 标志获取换行符,需要使用 `-m` 选项。即当你使用 `sel -t -c "expression" -n some.xml` 时,改为使用 `sel -t -m "expression" -c "。" -n some.xml`。 (4认同)