Чтобы загрузить документ из файла:
XDocument document = XDocument.Load("input.xml");
Чтобы получить названия всех стран:
IEnumerable<string> countries = document
.Descendants("country")
.Select(element => element.Attribute("value").Value);
Чтобы получить все штаты, которые находятся внутри страны "США":
IEnumerable<string> states = document
.Descendants("country")
.Where(element => element.Attribute("value").Value == "USA")
.Elements("state")
.Select(element => element.Attribute("value").Value);
Чтобы получить все города в США / Калифорнии:
IEnumerable<string> cities = document
.Descendants("country")
.Where(element => element.Attribute("value").Value == "USA")
.Elements("state")
.Where(element => element.Attribute("value").Value == "California")
.Elements("city")
.Select(element => element.Value);
Вы также можете посмотреть запросы XPath (вам нужно using System.XML.XPath
):
IEnumerable<string> cities = document
.XPathSelectElements("/demographics/country[@value='USA']/state[@value='California']/city")
.Select(element => element.Value);