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