Я новичок в LINQ to XML, и я смотрел учебники, но я не нашел того, который имеет достаточную глубину, чтобы пройти мой блок.В моем случае я обратился к нашему поставщику за информацией по указанному адресу.Существует вероятность того, что адрес не будет точным совпадением, поэтому они отправляют мне обратно файл XML с возможными адресами.
Здесь приведен фрагмент XML для нескольких списков адресов, возвращаемых с адреса.query:
<POSSIBLE-ADDRESSES>
<POS-ADDR>
<BUILDING>
<Street>1905 W HENDERSON RD </Street>
<City>COLUMBUS </City>
<RiskID>123456</RiskID>
</BUILDING>
<OCCUPANTS>
<OCCUP>
<ID>010</ID>
<Desc>MC DONALD'S RESTAURANT (1S) </Desc>
</OCCUP>
<OCCUP>
<ID>015</ID>
<Desc>MC DONALD'S RESTAURANT </Desc>
</OCCUP>
</OCCUPANTS>
</POS-ADDR>
<POS-ADDR>
<BUILDING>
<Street>1821 HENDERSON RD </Street>
<City>UPPER ARLINGTON </City>
<RiskID>1234567</RiskID>
</BUILDING>
<OCCUPANTS>
<OCCUP>
<ID>010</ID>
<Desc>ARLINGTON SQUARE SHOPPING CTR (1S) </Desc>
</OCCUP>
<OCCUP>
<ID>015</ID>
<Desc>1821 SWAN DRY CLNG </Desc>
</OCCUP>
<OCCUP>
<ID>020</ID>
<Desc>4681 ALEX'S BISTRO ON REED/REST </Desc>
</OCCUP>
<OCCUP>
<ID>025</ID>
<Desc>4687-93 BLUMEN GARTEN </Desc>
</OCCUP>
<OCCUP>
<ID>030</ID>
<Desc>4697 BLIMPIE/SANDWICH SHOP </Desc>
</OCCUP>
</OCCUPANTS>
</POS-ADDR>
</POSSIBLE-ADDRESSES>
Теперь то, что я делаю, это перетаскиваю все здания (имейте в виду, что их может быть гораздо больше) со следующим, а затем связываю это со списком - нет, важная персона:
var qBuildings = from LOP in loaded.Descendants("BUILDING")
select new
{
BuildingName = LOP.Element("Street").Value,
RiskId = LOP.Element("RiskID").Value
};
Это дает мне все здания, в которых я нуждаюсь, вместе с их идентификаторами риска.
Теперь кикер - это как тянуть «обитателей», когда пользователь выбирает данное здание на основе идентификатора риска, скажемпервый RiskID "123456".Поэтому, если пользователь выберет это здание, он выйдет и схватит каждого пассажира, увлажняющего класс жильца, и добавит этот класс в список жильцов, который я затем свяжу с другим списком.
Все, что я пробовал, такДалеко не удалось добиться результатов, пытаясь заполучить жителей.Я знаю, что это должно быть вопросом навигации, но я не могу построить запрос так, чтобы он возвращал что-нибудь полезное.Каждый идентификатор риска уникален, и в каждом здании может не быть ни одного, ни нескольких жильцов.Так что я теряюсь в том, как тянуть жителей.
Любая помощь будет признательна.