简体   繁体   中英

XML parsing C# using LINQ

How do you parse this kind of XML file with LINQ?

<houses>
  <house nbr="146" city="Linköping" owner="john"/>
  <house nbr="134" city="Norrköping" owner="wayne"/>
  <house nbr="146" city="Köping" owner="steffe"/>
</houses>

All examples I can find only describe how to parse when each element has a value.

If this was the case I would have done it like this:

var houses = from house in xmlDoc.Descendants("house")
            select new RowData
            {
                number = spec.Element("nbr").Value,
                city = spec.Element("city").Value,
                owner = spec.Element("owner").Value,
            };
return houses ;

But this xml file is not formatted that way.

Try this:

var houses = from house in document.Descendants("house")
                select new RowData
                {
                    number = (int)house.Attribute("nbr"),
                    city = (string)house.Attribute("city"),
                    owner = (string)house.Attribute("owner")
                };

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM