我有一个看起来像这样的XML文档。它是使用DevExpress的Diagram功能创建的。
<XtraSerializer version="17.1.3.0">
<Items>
<Item1 ItemKind="DiagramRoot">
<Children>
<Item1 Shape="Triangle" Content="AA" />
<Item2 Shape="Triangle" Content="AB" />
<Item3 Shape="Octagon" Content="A" />
</Children>
</Item1>
</Items>
</XtraSerializer>
我想查询它以返回 Children 下所有项目的 Shape 和 Content 。我尝试了下面的查询,但它不起作用。
XDocument document = XDocument.Load("C:\\Users\\Jb\\Desktop\\Network_Base.xml");
var items = from r in document.Descendants("Children")
select new
{
Content = r.Attribute("Content").Value,
Shape = r.Attribute("Shape").Value,
};
foreach (var r in items)
{
Console.WriteLine(r.Content + r.Shape);
}
答案 0 :(得分:2)
请尝试以下操作:
var results = doc.Descendants("Children").FirstOrDefault().Elements()
.Where(x => x.Attribute("Content") != null).Select(r => new {
Content = r.Attribute("Content").Value,
Shape = r.Attribute("Shape").Value
}).ToList();