Вы должны быть в состоянии сделать это.Если имеется несколько элементов пакета, и вы включили в свой фрагмент только один, вам нужно будет обернуть весь фрагмент в корень, возможно, <Batches> {xml} </Batches>
, чтобы вы могли работать с ним.Если да, то где я говорю
var query = from batch in document.Elements("Batch") ...
Измените это на
... document.Root.Elements("Batch") or document.Descendants("Batch")
Код:
string xml = @"<Batch type=""My Funds"" pageNumber=""69"">
<FundGroup heading=""Best Funds Ever"">
<fund id=""367""/>
<fund id=""373""/>
<fund id=""378""/>
</FundGroup>
<FundGroup heading=""Almost Best Funds"">
<fund id=""665""/>
<fund id=""666""/>
<fund id=""667""/>
</FundGroup>
</Batch>";
XDocument document = XDocument.Parse(xml);
var query = from batch in document.Elements("Batch")
select new
{
Type = batch.Attribute("type").Value,
PageNumber = (int)batch.Attribute("pageNumber"),
FundGroups = from fundGroup in batch.Elements("FundGroup")
select new
{
Heading = fundGroup.Attribute("heading").Value,
Funds = from fund in fundGroup.Elements("fund")
select new { Id = (int)fund.Attribute("id") }
}
};