XmlNodeReader liest nur jeden zweiten Node

multitasker

Mitglied
Hallo,
ich habe eine XML Datei, die ich mit dem XmlNodeREader auslesen möchte. Leider liest er nur jeden zweiten Node (Element) aus. Beim Debuggen habe ich gesehen, dass er dieses Element, das er nicht ausliest als Text und als EndElement interpretiert und nicht als Element. Also aus einem für mich nicht ersichtlichen Grund, erkennt er das Element <Element2_name> und jedes zweite darauffolgende nicht als Element.

Die XML-File sieht so aus:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<INI name="text" no="text">
  <Database>
    <element1_name>Text1</element1_name>    'wird gelesen
    <element2_name>Text2</element2_name>    'wird nicht gelesen
    <element3_name>Text3</element3_name>    'wird gelesen
    <element4_name>Text4</element4_name>    'wird nicht gelesen
    <element5>Text5</element5>                         '.....
    <element6>Text6</element6>
  </Database>
</INI-FILE>


Der Teil, der für das auslesen zuständig ist:

Code:
            Do While xmlNodeReader.Read

                If xmlNodeReader.NodeType = XmlNodeType.Element Then

                    If xmlNodeReader.Name = "element1_name" Then
                        ListView1.Items.Add(xmlNodeReader.ReadElementContentAsString)
                    ElseIf xmlNodeReader.Name = "element2_name" Then
                        ListView1.Items.Add(xmlNodeReader.ReadElementContentAsString)
                    ElseIf xmlNodeReader.Name = "element3_name" Then
                        ListView1.Items.Add(xmlNodeReader.ReadElementContentAsString)
                    ElseIf xmlNodeReader.Name = "element4_name" Then
                        ListView1.Items.Add(xmlNodeReader.ReadElementContentAsString)
                    ElseIf xmlNodeReader.Name = "element5_name" Then
                        ListView1.Items.Add(xmlNodeReader.ReadElementContentAsString)
                    ElseIf xmlNodeReader.Name = "element6_name" Then
                        ListView1.Items.Add(xmlNodeReader.ReadElementContentAsString)

                    End If
                End If
            Loop

Wenn ich die Elemente in der XML von der Reihenfolge vertausche, wird wieder das erste Element erkannt, das zweite nciht und so weiter. Wobei dann natürlich die Vertauschten gelesen werden:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<INI name="text" no="text">
  <Database>
    <element2_name>Text2</element2_name>   'wird gelesen
    <element1_name>Text1</element1_name>    'wird nicht gelesen
    <element4_name>Text4</element4_name>    'wird gelesen
    <element3_name>Text3</element3_name>     'wird nicht gelesen
    .................
  </Database>
</INI-FILE>

Gruß Jens
 
Zuletzt bearbeitet:
Zurück