XDocument.Load, wczytywanie tablicy typu int

0

Piszę małą aplikację i napotkałem problem, dość spory bo męczę się od 2 dni a i w sieci nie znalazłem żadnych konkretnych podpowiedzi.

<ArrayOfDyzur>
  <Dyzur>
    <peselPracownika>9509060230</peselPracownika>
    <listaDyzurow>
      <int>1</int>
      <int>3</int>
      <int>5</int>
      <int>7</int>
      <int>9</int>
      <int>11</int>
    </listaDyzurow>
  </Dyzur>
</ArrayOfDyzur>

Z takiego pliku typu XML potrzebuję wczytać dane by móc je przekazać do konstruktora obiektu.

            XDocument xml4 = XDocument.Load("listDate.xml");

            List<Dyzur> listaDat = (
                from Dyzur in xml4.Root.Elements("Dyzur")
                select new Dyzur(
                    Dyzur.Element("peselPracownika").Value,
                    Dyzur.Elements("int").ToArray(typeof(int)) <- jak się domyślacie nie działa
                    )
                ).ToList<Dyzur>();

Z pierwszą wartością (pesel) nie mam problemu natomiast jak to zrobić z tablicą. W jaki sposób wyciągnąć z XML od razu tablicę typu int ?
Wiem, że zamiast XML baza danych byłaby lepszym rozwiązaniem, ale tym razem wchodzi w grę tylko XML, taki wymóg.
Będę wdzięczny za jakieś podpowiedzi ;)

0

Ale to wyrzuca błąd w tym miejscu gdzie pokazałeś?
Spróbuj convert.toInt32()
Ewentualnie wczytaj jako string i sprawdź czy działa wczytywanie, może to z nim jest problem

2

Skąd się to bierze, że ludzie coraz częściej bawią się w ręczne parsowanie XMLa? To jakaś plaga na studiach? Domyślam się, że na tym poziomie mało kto wie, że można to zrobić prościej i szybciej.

public class Dyzur
{
   public string peselPracownika {get;set;}
   public List<int> listaDyzurow {get;set;}
}

Wystarczy parę linijek, bez linq, bez głupot

string xml = "XML_STRING";
var serializer = new XmlSerializer(typeof(List<Dyzur>));
using (TextReader reader = new StringReader(xml))
{
    var result = (List<Dyzur>)serializer.Deserialize(reader);
}

PS.
Kod z głowy. Nie mam pojęcia czy gdzieś błędu nie zrobiłem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1