Ergebnis 1 bis 9 von 9
  1. #1
    MiG87 ist offline Grünschnabel
    registriert
    19-05-2008
    Beiträge
    7

    Unhappy XML wird nicht korrekt ausgelesen

    Hallo zusammen,

    ich bin am verzweifeln. Ich möchte folgendes XML auslesen:
    Code:
    <root>
    <ort name="Köln" oid="19302"/>
    <ort name="Musterstadt1" oid="123"/>
    <ort name="Musterstadt2" oid="456"/>
    <ort name="Musterstadt3" oid="789"/>
    <ort name="Musterstadt4" oid="999"/>
    </root>
    Folgendes Script verwende ich Clientseitig (JavaScript/DOM):

    Code:
    var xml = req.responseXML;
    var knoten = xml.getElementsByTagName('ort')[0];
                       
    while(knoten != null){
    
      alert(knoten);
    
      ort.options[ort.options.length] = new Option(knoten.getAttribute('name'),knoten.getAttribute('oid'));
    
      var neuerKnoten = knoten.nextSibling;
      knoten = neuerKnoten;
    						
    }
    ort ist ein SELECT Feld in einem Formular der Seite.

    Die ersten 2 durchläufe funktinieren, beim 3. Mal wird nicht kein durch nextSibling kein element mehr zurückgegeben, sondern ein [Object text].
    Dadurch kann getAttribute() nicht mehr ausgeführt werden.

    Warum ändert nich der Typ von knoten.nextSibling?

    Danke.

  2. #2
    Avatar von Dormilich
    Dormilich ist offline Kaiser
    registriert
    15-01-2010
    Beiträge
    1.311

    AW: XML wird nicht korrekt ausgelesen

    da springt nextSibling wahrscheinlich zum Zeilenumbruch, der in XML ein eigener Knoten ist. einfach solange weitermachen, bis wieder ein Element da ist.
    PHP-Code:
    do {
        
    neuerKnoten knoten.nextSibling;
    } while (!(
    neuerKnoten instanceof Element)); 
    im DOM 3 gibt es, glaub ich, auch eine passende Methode, die dir die Elementkinder liefert (sprich, Firefox & Co).

  3. #3
    MiG87 ist offline Grünschnabel
    registriert
    19-05-2008
    Beiträge
    7

    AW: XML wird nicht korrekt ausgelesen

    Interessanter Ansatz.
    Leider generiert die schleife scheinbar eine Endlosschleife, Firefox fragt mich nach einigen Sekunden, ob ich das Script stoppen möchte.
    Allerdings erst beim 3. Durchlauf.

    Ich hatte schon versucht mit childNodes.lenght auf root zu gehen und dann eine for Schleife zu verwenden. Hat leider nicht so recht funktioniert.

  4. #4
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.667

    AW: XML wird nicht korrekt ausgelesen

    Zitat Zitat von MiG87 Beitrag anzeigen
    Warum ändert nich der Typ von knoten.nextSibling?
    warum gehst du überhaupt über knoten.nextSibling? du kannst doch nur über die relevanten knoten gehen. das ist ja der sinn von getElementsByTagName
    Code:
    var knoten = xml.getElementsByTagName('ort');
    for (var i = 0; i < knoten.length; i++)
    {
      alert(knoten.item(i));
    }

  5. #5
    Avatar von Dormilich
    Dormilich ist offline Kaiser
    registriert
    15-01-2010
    Beiträge
    1.311

    AW: XML wird nicht korrekt ausgelesen

    Zitat Zitat von MiG87 Beitrag anzeigen
    Interessanter Ansatz.
    Leider generiert die schleife scheinbar eine Endlosschleife,
    stimmt, die finale Abbruchbedingung fehlt ja. der ansatz über getElementsBy*() dürfte da sicherer sein.

  6. #6
    MiG87 ist offline Grünschnabel
    registriert
    19-05-2008
    Beiträge
    7

    AW: XML wird nicht korrekt ausgelesen

    Genau diesen Ansatz hatte ich bereits verfolgt, nur ist
    Code:
    xml.getElementsByTagName('ort').lenght
    anscheinend nicht definiert.

    Die Schleife startet nicht.
    Wie finde ich heraus welche Version von DOM ich verwende?
    Teste mit FF 3.6.

  7. #7
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.760

    AW: XML wird nicht korrekt ausgelesen

    Zitat Zitat von MiG87 Beitrag anzeigen
    [...]nur ist [...] lenght [...] anscheinend nicht definiert. .
    Muss man da noch was sagen?

  8. #8
    MiG87 ist offline Grünschnabel
    registriert
    19-05-2008
    Beiträge
    7

    AW: XML wird nicht korrekt ausgelesen

    Asche auf mein Haupt. :-(

    Jetzt funktioniert es.

  9. #9
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.667

    AW: XML wird nicht korrekt ausgelesen


Ähnliche Themen

  1. XML importieren über URL in MySQL
    Von Michael B. im Forum Serverseitige Programmierung
    Antworten: 1
    Letzter Beitrag: 20-08-2009, 13:06
  2. XMLhttrequest mit Request in XML aka XML formen in JavaScript
    Von theunexpecteds im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 01-08-2008, 14:18
  3. XML auslesen in Firefox 3
    Von Montellese im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 17-07-2008, 13:39
  4. xml - valide aber mit Fehler
    Von mr.jones im Forum CSS und (X)HTML
    Antworten: 5
    Letzter Beitrag: 02-04-2008, 22:37
  5. Antworten: 2
    Letzter Beitrag: 18-11-2004, 12:42

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •