次の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=""ため、属性の実際の名前空間URIを渡す必要があると想定しました。