Reputation: 3770
I have this xml. How do I select a <region>
depending upon the "section"?
<PhoneAndAddresses>
<PageTitle></PageTitle>
<region section="CityServices">
<Business>
<Name>
Atlanta Police Department
<Name>
<Address>612 Magnolia St NW, Atlanta, GA 30314</Address>
<Phone>404-658-6486</Phone>
</Business>
<Business>
<Name>Atlanta Police Department</Name>
<Address>398 Centennial Olympic Park Dr NW, Atlanta, GA 30313</Address>
<Phone>404-658-6636</Phone>
</Business>
</region>
<region section="Hospitals">
<Business>
<Name>
Emory University Hospital
<Name>
<Address>612 Magnolia St NW, Atlanta, GA 30314</Address>
<Phone>404-658-6486</Phone>
</Business>
<Business>
<Name>
St Joseph's Hospital
<Name>
<Address>398 Centennial Olympic Park Dr NW, Atlanta, GA 30313</Address>
<Phone>404-658-6636</Phone>
</Business>
</region>
</PhoneAndAddresses>
Upvotes: 1
Views: 93
Reputation: 56222
Use:
var result = XDocument.Parse(input).Descendants("region")
.FirstOrDefault(e => (string)e.Attribute("section") == "CityServices");
or using XPath:
//region[@section = 'CityServices']
Upvotes: 2
Reputation: 36082
Try something like this (untested):
var doc = XDocument.Parse(xmltext);
var selectedRegion = doc.Root.Descendents("region").FirstOrDefault(r => r.Attribute("section").Value == "target value");
Upvotes: 2