Bash将XML解析为逗号分隔的列表

问题描述 投票:1回答:1

请问我如何返回用逗号分隔的ID列表?

<nodes>
 <node>
   <id>1</id>
   <name>idbread</name>
 </node>
 <node>
   <id>2</id>
   <name>idbutter</name>
 </node>
</nodes> 

期望的输出

1,2

我尝试使用XPath,但是concat仅返回第一个值。

xpath node.xml“ // nodes / node / id / text()” 2> / dev / null

返回

12

xml bash csv xpath
1个回答
0
投票

您可以为此使用

xmlstarlet sel -t -v "/nodes/node[1]/id" -m "/nodes/node[position()>1]" -v "concat(',',id)" input.xml
© www.soinside.com 2019 - 2024. All rights reserved.