У меня есть следующие XMLPopulate класса из XML с помощью Linq
<?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 ("блоки") элементы ("блок")' –
Вы получаете исключение? Это, похоже, не является корректным XML. '' не закрывается, вложенные элементы представляют собой смешанный регистр '' vs ' '. Можете ли вы его проверить и исправить? –
Извиняется, я изменил оригинал xml, чтобы опубликовать вопрос ... следовательно, ошибка – user1641194