2016-07-23 81 views
2

我想讀一些大的XML文件的只是這一部分:閱讀部分用的XDocument

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

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

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

,我發現這樣做,但我有一些問題。

 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); 

     } 

通過標籤名稱訪問節點的第一方式工作不錯,但我的問題是,爲什麼我不能SelectSingleNode達到同樣的事情?

+0

你想說什麼,當你使用'SelectSingleNode'?有什麼錯誤? – Mostafiz

+0

@MostafizurRahman對象引用未設置爲對象的實例。 –

+0

@analogvoyager你有根元素上定義的任何名稱空間? –

回答

0

使用XML命名空間

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

的確如此,它做到了:companyElement.SelectSingleNode(「// name:LineDisc」,namesp).FirstChild.Value。非常感謝! –

+0

多數民衆贊成好,快樂編碼:) – Mostafiz