【发布时间】:2014-01-17 12:55:41
【问题描述】:
我有以下 XML
<?xml version="1.0" encoding="utf-8"?>
<Applications xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Blocks>
<Block Name="block1">
<Attributes>
<Tag>Attribute1</Tag>
<Layer>layer1</Layer>
</Attributes>
<Attributes>
<Tag>Attribute2</Tag>
<Layer>layer2</Layer>
</Attributes>
</Block>
<Block Name="block2">
<Attributes>
<Tag>Attribute1</Tag>
<Layer>layer0</Layer>
</Attributes>
</Block>
</Blocks>
</Applications>
我想使用 linq 语句来捕获所有详细信息并使用以下类填充列表。即列表
public class Block
{
public string Tag { get; set; }
public string Layer { get; set; }
}
我试过了……
List<Block> data =
(from a in xdoc.Root.Elements("Blocks")
where (string)a.Attribute("Name") == "block1"
select new Block
{
Tag = (string)a.Element("Tag"),
Layer = (string)a.Element("Layer")
}).ToList();
你能看出我哪里出错了吗,对 linq 来说有点陌生。
【问题讨论】:
-
试试
xdoc.Root.Elements("Blocks").Elements("block") -
道歉,我修改了原始 xml 以发布问题......因此出现错误