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

处理Visio XML时,如何用XPath访问带命名空间的属性?

解决带命名空间的XML属性访问问题

问题根源

你存在两个关键错误:

  • 命名空间URL不匹配:XML中r前缀对应的命名空间是http://schemas.openxmlformats.org/officeDocument/2006/relationships,但你在XmlNamespaceManager中给xRel前缀配置了错误的URL(http://schemas.openxmlformats.org/package/2006/relationships)。
  • 属性值大小写错误:XML中属性值是rId1,但你的XPath里写的是rid1,XPath对大小写敏感。

修正步骤

  1. 修正命名空间配置:
XmlNamespaceManager nsm = new XmlNamespaceManager(new NameTable());
nsm.AddNamespace("xVis", "http://schemas.microsoft.com/office/visio/2012/main");
// 替换为XML中r前缀对应的正确命名空间URL
nsm.AddNamespace("xRel", "http://schemas.openxmlformats.org/officeDocument/2006/relationships");
  1. 修正XPath表达式:
// 注意属性值是rId1(大小写正确),属性使用xRel前缀
XPathSelectElement(".//xVis:Page/xVis:Rel[@xRel:id='rId1']", nsm);

额外说明

  • XML元素和属性的命名空间必须严格匹配URL,前缀可以自定义(比如用xRel代替r没问题),但URL不能出错。
  • XPath对元素名、属性名、属性值的大小写都敏感,必须和XML内容完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 15:52:31