gpt4 book ai didi

.net - 为什么我必须将空命名空间传递给 XPathNavigator.GetAttribute?

转载 作者:数据小太阳 更新时间:2023-10-29 02:05:52 28 4
gpt4 key购买 nike

给定以下 XML 标记:

<root xmlns="Demo">
<child name="foo"/>
</root>

和一个XPathNavigator位于 <child>元素,

string withNs = navigator.GetAttribute("name", navigator.NamespaceURI);
string withoutNs = navigator.GetAttribute("name", "");

产生奇怪的结果:withNs是空的,withoutNs包含 foo .

这是为什么呢?我原以为会是相反的方式,因为 name属性必须在 Demo 中命名空间,例如 child元素。

MSDN 文档没有提到传递 namespaceURI="" 的任何神奇含义,所以我假设您必须传递属性的真实 namespace URI。

最佳答案

as the name attribute must be in the Demo namespace like the child element.

根据 w3c 规范,属性不继承它们所属元素的 namespace ,这就是为什么您得到这些结果的原因,这些结果是正确的。

相关文章:http://web.archive.org/web/20170118162309/http://www.xmlplease.com/attributexmlns

关于.net - 为什么我必须将空命名空间传递给 XPathNavigator.GetAttribute?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1922534/

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