You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用xmllint提取多个标签ID值并按行输出?

解决xmllint提取SOAP响应id值换行显示的问题

方法1:使用xmllint的shell模式(推荐)

这种方式会自动为每个匹配的id值单独换行:

curl [你的SOAP请求完整命令] | xmllint --shell - <<<'cat //return/id/text()'

方法2:通过XPath的concat添加换行符

利用XPath的concat()函数给每个id值追加换行符(XML中用&#xa;表示换行):

curl [你的SOAP请求完整命令] | xmllint --xpath 'for $node in //return/id/text() return concat($node, "&#xa;")' -

方法3:用sed分割输出(适用于id格式固定的场景)

如果你的id长度有规律(比如都是5-7位数字),可以用sed插入换行:

curl [你的SOAP请求完整命令] | xmllint --xpath "//return/id/text()" - | sed 's/\([0-9]\{5,7\}\)/\1\n/g'

问题原因

xmllint的--xpath选项默认会将所有匹配到的文本节点内容直接拼接输出,不会自动添加换行或分隔符,因此需要通过上述方式手动处理换行逻辑。

内容的提问来源于stack exchange,提问作者Kart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 18:05:04