2016-07-23 7 views
2

Ich versuche nur, diese Teil einer großen XML-Datei zu lesen:Read Teil von XML mit XDocument

--------------------- 

<SOL> 
    <LineDisc>109.90</LineDisc> 
</SOL> 

--------------------- 

und ich fand die Art und Weise, es zu tun, aber ich habe einige Fragen.

 string testElement; 
     XmlDocument doc = new XmlDocument(); 


     doc.Load(xmlFilePath); 

     XmlNodeList companyList = doc.GetElementsByTagName("SOL"); 

     foreach (XmlNode node in companyList) 
     { 
      XmlElement companyElement = (XmlElement)node; 

      testElement = companyElement.GetElementsByTagName("LineDisc")[0].InnerText; 
      Console.WriteLine(companyElement.SelectSingleNode("LineDisc").Value); 
      Console.WriteLine(testElement); 

     } 

Der erste Weg des Knotens durch Tag-Namen Zugriff funktioniert gut, aber meine Frage ist, warum ich die gleiche Sache mit SelectSingleNode nicht erreichen können?

+0

was bekommen Sie, wenn Sie 'SelectSingleNode' verwenden? irgendein Fehler? – Mostafiz

+0

@MostafizurRahman Objektverweis wird nicht auf eine Instanz eines Objekts gesetzt. –

+0

@analogvoyager Haben Sie einen Namespace auf Root-Element definiert? –

Antwort

0

Verwendung XML-Namens

var namesp = new XmlNamespaceManager(doc.NameTable); 
namesp.AddNamespace("name", "http://ratequote.usfnet.usfc.com/v2/x1"); 

XmlNode companyList = doc.SelectSingleNode("//name:SQL", namesp).FirstChild; 
+0

In der Tat, das hat es geschafft: companyElement.SelectSingleNode ("// name: LineDisc", namesp) .FirstChild.Value. Danke vielmals! –

+0

das ist gut, fröhliche Codierung :) – Mostafiz