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

如何用xmllint提取XML属性的纯值而非带属性名的结果?

使用xmllint --xpath直接提取XML属性的纯值(支持单/双引号)

不用依赖awk等后续文本处理工具,直接通过XPath的string()函数就能让xmllint返回属性的纯值,完美兼容单引号和双引号包裹的属性:

核心命令

xmllint --xpath 'string(//@team)' your_file.xml

说明

  • 把//@team替换成你实际需要提取的属性的XPath路径://表示匹配文档中所有符合的节点,@team表示选取名为team的属性;如果需要更精准的匹配(比如指定父节点),可以写成//project/@team之类的路径。
  • string()函数会直接返回属性的原始内容,不会包含包裹属性的单引号或双引号,完全满足你要纯值的需求。

示例验证

假设你的XML内容如下:

<root>
  <project team="team_abc" />
  <project team='team_def' />
</root>

执行命令后会分别返回:

  • 提取第一个属性:xmllint --xpath 'string(//project[1]/@team)' test.xml → team_abc
  • 提取第二个属性:xmllint --xpath 'string(//project[2]/@team)' test.xml → team_def

这种方案完全由xmllint原生处理,避免了后续文本解析的潜在问题(比如属性值中包含引号的极端情况),比awk的临时处理更健壮优雅。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 03:32:21