У меня есть иерархические данные, хранящиеся в файле XML. Есть несколько компаний, каждая из которых может иметь несколько направлений бизнеса. Они ведут каждое направление бизнеса в нескольких штатах. И в каждом штате может быть несколько курсовых структур. Поддельный образец показан ниже.
Как мне написать запрос LINQ to XML, чтобы получить, например, все структуры тарифов для данной компании, вида деятельности и штата? Или все государства, в которых данная компания предлагает страхование жизни.
Пример: вернуть все тарифы по страхованию от землетрясения в совхозе в Орегоне.
Пример: вернуть все штаты, в которых Путешественники предлагают страхование жизни.
Я знаю, как сделать это на один уровень глубже, но не могу понять, как развернуть глубже, чем это. Я просто знаю, что бью себя по голове и, когда получу ответ, пойду "Дух", но сейчас я застрял.
<?xml version="1.0" encoding="utf-8" ?>
<businessData>
<company name="StateFarm" id="21">
<lineOfBusiness name="Homeowners" id="24">
<state name="Texas" abbreviation="TX">
<rate structure="A"/>
<rate structure="D"/>
<rate structure="F"/>
</state>
</lineOfBusiness>
<lineOfBusiness name="Earthquake" id="62">
<state name="California" abbreviation="CA">
<rate structure="A"/>
<rate structure="B"/>
</state>
<state name="Oregon" abbreviation="OR">
<rate structure="A"/>
</state>
<state name="Washington" abbreviation="WA">
<rate structure="A"/>
</state>
</lineOfBusiness>
<lineOfBusiness name="Fire" id="22">
<state name="California" abbreviation="CA">
<rate structure="A"/>
</state>
</lineOfBusiness>
</company>
<company name="Travellers" id="17">
<lineOfBusiness name="Life" id="23">
<state name="Florida" abbreviation="FL">
<rate structure="A"/>
<rate structure="C"/>
<rate structure="D"/>
</state>
<state name="Alabama" abbreviation="AL">
<rate structure="A"/>
<rate structure="B"/>
<rate structure="C"/>
</state>
</lineOfBusiness>
<lineOfBusiness name="Homeowners" id="24">
<state name="Alabama" abbreviation="AL">
<rate structure="X"/>
<rate structure="Y"/>
<rate structure="X"/>
</state>
<state name="Arkansas" abbreviation="AR">
<rate structure="C"/>
</state>
<state name="California" abbreviation="CA">
<rate structure="G"/>
</state>
<state name="Florida" abbreviation="FL">
<rate structure="D"/>
</state>
<state name="Georgia" abbreviation="GA">
<rate structure="D"/>
</state>
<state name="Louisiana" abbreviation="LA">
<rate structure="B"/>
</state>
<state name="Missouri" abbreviation="MO">
<rate structure="A"/>
</state>
</lineOfBusiness>
<lineOfBusiness name="Auto" id="25">
<state name="California" abbreviation="CA">
<rate structure="T"/>
<rate structure="Y"/>
<rate structure="Z"/>
</state>
</lineOfBusiness>
</company>
<company name="NationWide" id="79">
<lineOfBusiness name="Earthquake" code="EQ" id="62">
<state name="California" abbreviation="CA">
<rate structure="B"/>
<rate structure="C"/>
<rate structure="D"/>
<rate structure="G"/>
</state>
</lineOfBusiness>
</company>
</businessData>