我需要从xml获取节点值。 xml具有命名空间。
我有以下代码
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");
但是node = null
你能告诉我代码中的错误在哪里吗?
答案 0 :(得分:2)
您需要使用重载的SelectSingleNode
方法并传入XmlNamespaceManager
。此外,您还需要文档节点的sf前缀。
像这样拉出节点:
XmlNode node = xmlDocument.SelectSingleNode("sf:file/sf:document", ns);