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

求助编写XPath提取XML中Name关联的Resource或ID值

针对需求的XPath及xmllint命令实现

假设你的XML结构类似如下(若实际结构不同,仅需调整XPath中的节点路径即可):

<Root>
  <Item Name="PROD-TEST" Resource="prod-res-001">
    <ID>prod-id-001</ID>
  </Item>
  <!-- 其他条目 -->
</Root>

需求1:提取Resource属性值并按指定格式输出

使用带字符串拼接的XPath,结合xmllint命令直接生成要求的格式:

xmllint --xpath 'concat("//*[@Name=''PROD-TEST'']/@Name, '' - '', //*[@Name=''PROD-TEST'']/@Resource")' your-file.xml

关键说明:

  • //*[@Name='PROD-TEST'] 定位所有Name属性值为PROD-TEST的节点
  • concat() 函数用于拼接字符串,将属性值与分隔符组合成要求的输出格式

需求2:提取ID标签内容并按指定格式输出

同样通过concat()实现字符串拼接,目标节点改为对应ID子节点:

xmllint --xpath 'concat("//*[@Name=''PROD-TEST'']/@Name, '' - '', //*[@Name=''PROD-TEST'']/ID/text()")' your-file.xml

关键说明:

  • /ID/text() 定位到目标节点下ID子节点的纯文本内容
  • 若XML中ID节点带有命名空间,需给xmllint添加--namespace参数并指定对应命名空间前缀

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 14:12:02