LINQ to XML。 如何获得一些字符串?

我有xml:

   Ray Other LargeCover MiniCover   

如何获得字符串“MiniCover”?

我写了代码,但它不起作用 – 字符串是空的;

  string testLink = (@"Text.xml"); XDocument xml = XDocument.Load(testLink); string cv = String.Empty; var c = from cover in xml.Elements("book") where (string)cover.Attribute("size").Value == "mini" select cover.Value; foreach (var item in c) { cv += item.ToString(); } MessageBox.Show(cv); 

谢谢!

Xpath可以简化您的代码

 var covers = xDoc.XPathSelectElements("//cover[@size='mini']").ToList(); 

得到内在的文本

 var covers = xDoc.XPathSelectElements("//cover[@size='mini']") .Select(x => x.Value) .ToList(); 

使用Elements() ,必须更精确地指定结构。

在您的代码中, cover是一个元素。 但是size的属性。

  var c = from cover in xml.Elements("book") where (string)cover.Attribute("size").Value == "mini" select cover.Value; 

这应该工作:

  var c = from cover in xml.Elements("book") .Elements("cover") where (string)cover.Attribute("size").Value == "mini" select cover.Value;