// 1.实体类
class Address
{
public string Name { get; set; }
public string Street { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }
public string Country { get; set; }
}
// 2.测试转换
static void XmlTest()
{
string xmlStr = @"<root>
<Address Type='Billing'> <Name> Tai Yee </Name>
<Street> 8 Oak Avenue</Street >
<City> Old Town </City >
<State> PA </State >
<Zip> 95819 </Zip >
<Country> USA </Country >
</Address>
<Address Type='Billing'> <Name> Tai Yee </Name>
<Street> 8 Oak Avenue</Street >
<City> Old Town </City >
<State> PA </State >
<Zip> 95819 </Zip >
<Country> USA </Country >
</Address>
<Address Type='Billing'> <Name> Tai Yee </Name>
<Street> 8 Oak Avenue</Street >
<City> Old Town </City >
<State> PA </State >
<Zip> 95819 </Zip >
<Country> USA </Country >
</Address>
<Address Type='Billing'> <Name> Tai Yee </Name>
<Street> 8 Oak Avenue</Street >
<City> Old Town </City >
<State> PA </State >
<Zip> 95819 </Zip >
<Country> USA </Country >
</Address>
</root>";
XDocument doc = XDocument.Parse(xmlStr);
List<Address> result = (from x in doc.Element("root").Elements("Address")
select new Address
{
Name = x.Element("Name").Value,
Street = x.Element("Street").Value,
City = x.Element("City").Value
}).ToList();
}
MSDN详解及示例:
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/how-to-project-an-object-graph