none
Linq2Xml Abfrage von Elementen funktioniert nicht RRS feed

  • Frage

  • Hi,

    Ich habe eine XML- Datei in folgender Form:

    -<ElevationData> <ZoomLevel>11</ZoomLevel> -<Elevations> <int>384</int> <int>384</int> <int>384</int> <int>384</int> <int>384</int> </Elevations> </ElevationData>

    Ich verwende folgende Abfrage:

    XDocument doc = XDocument.Parse(Out);
                        var ele = from r in doc.Descendants(oXNamespace0+"Elevations")
                                  select new
                                  {
                                      ELEVATIONS = r.Element(oXNamespace0+"int").Value
                                  };

    ..ich bekomme aber leider nur einen Wert 384 zurück!

    Besten Dank!

    Andreas


    Freitag, 29. Januar 2016 07:59

Antworten

  • Hallo,

    Du verwendest oben r.Element und das liefert Dir dann den erstebn Eintrag. Um alle zu erhalten müsstest Du Elements (plural) verwenden, z. B.:

      var document = XDocument.Parse("<ElevationData>"
                    + "<ZoomLevel>11</ZoomLevel>"
                    + "<Elevations>"
                        + "<int>384</int>"
                        + "<int>384</int>"
                        + "<int>384</int>"
                        + "<int>384</int>"
                        + "<int>384</int>"
                    + "</Elevations>"
                + "</ElevationData>");
    
                string XNamespace0 = "";
                var elevations = from r in document
                                   .Element(XNamespace0 + "ElevationData")
                                   .Element(XNamespace0 + "Elevations")
                                   .Elements(XNamespace0 + "int")
                               select (int)r;
    
                foreach (var elevation in elevations)
                {
                    Console.WriteLine("{0}", elevation);
                }

    Ich habe dabei Descedants durch zwei explizite Element Bezüge ersetzt, um es deutlicher zu machen.

    Gruß Elmar

    • Als Antwort markiert AndiBitti Samstag, 30. Januar 2016 20:33
    Freitag, 29. Januar 2016 15:30