2017-02-09 2 views
0

ich eine xml wie dies lesen können ...lesen xml mit Namespace

var xml = new XmlDocument(); 
    xml.Load(fileName); 


    var myVal = SingleElement(xml, "BOOKS/AUTHOR/NAME") 

    public string SingleElement(XmlDocument xdoc, string thePath) 
    { 
     string value; 
     try 
     { 
      return xdoc.SelectSingleNode(thePath).InnerText; 
     } 
     catch (Exception x) 
     { 
      value = string.Empty; 
     } 

     return value; 
    } 

Aber wenn die XML-Datei einen Namespace wie <ns0:BOOKS

hat bekomme ich einen Fehler „Objektverweis nicht auf eine Instanz eingestellt eines Objekts "Fehler. Was muss ich hinzufügen, um das XML lesen zu können?

Antwort

0

Sie können XmlNamespaceManager verwenden, um Namespace hinzuzufügen.

XmlNamespaceManager namespacemgr = new XmlNamespaceManager(xdoc.NameTable); 
     namespacemgr.AddNamespace("ns", "xxx"); 
     XmlNode node = criteria.SelectSingleNode("/ns:Books", namespacemgr);