gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 23:50:54 24 4
gpt4 key购买 nike

请问如何返回以逗号分隔的 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

最佳答案

您可以使用为此:

xmlstarlet sel -t -v "/nodes/node[1]/id" -m "/nodes/node[position()>1]" -v "concat(',',id)" input.xml

这将输出第一个 node/id 节点的值,然后输出以下由逗号分隔的 node/id。输出符合要求。

  • sel 选项选择 xmlstarlet 的选择/查询模式
  • -t 表示“XSLT 模板”的开始
  • 第一个 -v 选项输出 XPath 表达式的值
  • -m 选项在 XPath 表达式上创建一个 for-each
  • 第二个 -v 选项输出相对于 for-each 上下文值的 XPath 表达式的值

关于xml - Bash 将 XML 解析为逗号分隔列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59230190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com