2014-02-05 60 views
1

我需要從xml中獲取節點值。 XML有命名空間。如何正確使用XmlNamespaceManager和SelectSingleNode?

我有以下代碼

string xml = 
    "<file xmlns=\"SFAKT\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">" + 
    "<document>test</document>" + 
    "</file>"; 

XmlDocument xmlDocument = new XmlDocument(); 
xmlDocument.LoadXml(xml); 

XmlNamespaceManager ns = new XmlNamespaceManager(xmlDocument.NameTable); 
ns.AddNamespace("sf", "SFAKT"); 
XmlNode node = xmlDocument.SelectSingleNode("sf:file/document"); 

但節點=

你能告訴我,在我的代碼中的錯誤?

回答

2

您需要使用超載SelectSingleNode方法並通過XmlNamespaceManager。另外,您需要文檔節點的sf前綴。

將節點出這樣的:

XmlNode node = xmlDocument.SelectSingleNode("sf:file/sf:document", ns); 
相關問題