2014-09-19 33 views
-1

特定的XML行我有一個XML看起來像這樣:獲取與LINQ

<data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<row> 
    <Alert>warning</Alert> 
</row> 
</data> 

我wan't獲得的所有行。在這種情況下,我想要的值是「Alert」。

這是因爲車費我有...

using (XmlReader reader = cmd.ExecuteXmlReader()) 
      { 
       string xmlFile = ""; 
       while (reader.Read()) 
       { 
        xmlFile = reader.ReadOuterXml(); 
       } 
       var xmlElement = XElement.Parse(xmlFile); 
       var result = xmlElement.Elements("data").Where(x => x.Value.Equals("row")).ToList(); 
      } 

我知道什麼是錯的我的LINQ,但我很新的LINQ,並希望一些幫助。

謝謝!

回答

0
XNamespace ns = "http://www.w3.org/2001/XMLSchema-instance"; 
var xDocument = XDocument.Load("path"); 
var result = xDocument.Descendants(ns + "row").ToList(); 
+0

沒有工作.... – MrProgram 2014-09-19 12:50:31

0

我希望這會起作用。請試試這個。

var xDocument = XDocument.Load(@"XmlFilePath"); 
//Use below if you have xml in string format 
// var xDocument = XDocument.Parse("XmlString"); 
XNamespace ns = xDocument.Root.GetDefaultNamespace(); 
var result = xDocument.Descendants(ns + "row").ToList();