4
给出的以下XML标记:为什么我必须将空名称空间传递给XPathNavigator.GetAttribute?
<root xmlns="Demo">
<child name="foo"/>
</root>
和位于<child>
元件上的XPathNavigator
,
string withNs = navigator.GetAttribute("name", navigator.NamespaceURI);
string withoutNs = navigator.GetAttribute("name", "");
产生奇怪的结果:withNs
是空的,包含withoutNs
foo
。
这是为什么?我原以为这是另一回合,因为name
属性必须位于Demo
名称空间中,如child
元素。
MSDN文档没有提及传递namespaceURI=""
的神奇含义,所以我假设你必须传递该属性的真实名称空间URI。
谢谢!傻我。我想在发布之前验证我对名称空间继承的假设,但是放弃了太简明的XML规范:-(无论如何,我刚刚发现了一个很好的解释:http://www.xmlplease.com/attributexmlns – 2009-12-18 08:47:01