Tworzę obecnie parser plików XML w C#. Fragment wczytywanego pliku wygląda następująco:
<listaPOI>
<POI>
<id>1</id>
<nazwa>Nowa nazwa punktu 1</nazwa>
<ikona>sciezka wzgledna do ikony</ikona>
<wsp>
<szer>71</szer>
<dl>51</dl>
</wsp>
<adres>Adresy nowy</adres>
<realizacja>2029</realizacja>
<opis>Opis punktu zmieniamy</opis>
<multimedia>
<odnosnik1>odnosnik/do/pierwszego</odnosnik1>
<odnosnik2>odnosnik/do/drugiego</odnosnik2>**
</multimedia>
<obserwacyjne>
<pozycja1>
<szer>72</szer>
<dl>52</dl>
</pozycja1>
<pozycja2>
<szer>73</szer>
<dl>53</dl>
</pozycja2>
</obserwacyjne>
</POI>
Mam napisaną aplikację okienkową, która odpowiednio wyświetla te dane. Moim problemem jest wczytanie danych z <odnosnik1>, <odnosnik2>, <pozycja1> ... do listy zawierającej obiekty typu string. Kod w C# jak na razie wygląda następująco:
// Wczytywanie
var rezultat = from q in xDoc.Descendants("POI")//Descendants("POI")
where (q.Element("id").Value.Equals(L.Text)) // porownanie id kliknietego i wyszukanego
select new POI
{
id = q.Element("id").Value,
nazwa = q.Element("nazwa").Value,
ikona = q.Element("ikona").Value,
wspolrzedna = Tuple.Create(q.Element("wsp").Element("szer").Value,
q.Element("wsp").Element("dl").Value
),
adres = q.Element("adres").Value,
realizacja = q.Element("realizacja").Value,
opis = q.Element("opis").Value,
//multimedia = q.Element("multimedia").Elements("odnosnik").ToList();
//multimedia = new string[] { q.Element("multimedia").Elements("odnosnik").Value }
//obserwacyjne
//przefiltrowanie i dodawanie elementów z list
};
// Klasa POI
public class POI
{
public string id { set; get; }
public string nazwa { get; set; }
public string ikona { get; set; }
public Tuple <string,string> wspolrzedna { get; set; }
public string adres { get; set; }
public string realizacja { get; set; }
public string opis { get; set; }
public List<string> multimedia { get; set; } // multimedia - same odnosniki
public List<Tuple<string,string>> obserwacyjne { get; set; } // lista puinktow
}
Proszę o pomoc jak napisać to podzapytanie.