tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
0
ZUGRIFFE
803
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    multitasker multitasker ist offline Mitglied Silber
    Registriert seit
    Apr 2008
    Beiträge
    57
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    <?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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
                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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    <?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
    Geändert von multitasker (25.02.09 um 12:09 Uhr)
     

Ähnliche Themen

  1. Wie liest man am schnellsen .txt Files ein
    Von insertcoin im Forum Java
    Antworten: 3
    Letzter Beitrag: 24.10.07, 08:14
  2. Wie liest man dieses Struktogramm -->
    Von janosch im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 31.03.04, 22:06
  3. wie liest Flash adresszeile ein?
    Von rforce im Forum Flash Plattform
    Antworten: 1
    Letzter Beitrag: 20.01.04, 07:36
  4. [C++]cin liest nicht ein
    Von bitmaster im Forum C/C++
    Antworten: 9
    Letzter Beitrag: 11.08.03, 10:49
  5. liest Daten nicht in db ein.
    Von Dolphon im Forum PHP
    Antworten: 5
    Letzter Beitrag: 02.07.03, 16:02