次の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を渡す必要があると想定しました。