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;