2014-09-19 39 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();