Ergebnis 1 bis 4 von 4
  1. #1
    whiteF ist offline Jungspund
    registriert
    30-03-2007
    Beiträge
    10

    Xml for schleife läuft nur einmal denkfehler?

    Hallo,
    Ich habe eine simple for schleife für die nodes in einer xml.
    Das ganze soll für jeden node des mainnodes wiederholt werden. Leider läuft es nur einmal durch und beim 2 durchlauf bereits hängt das script.

    Wisst ihr wo der fehler hier liegt??

    VG
    (Mobiler post, ohne möglichkeit code ordentlich darzustellen, sry)

    Script:
    HTML-Code:
    var ItemsCount =xmlDoc.getElementsByTagName('oben')[0].childNodes.length;
     
    alert('ItemsCount: ' + ItemsCount);
     
    for (var i=0; i < ItemsCount; i++)
    {
     
    var nodeName_i = xmlDoc.getElementsByTagName('oben')[0].childNodes[i].nodeName;
            var x  = xmlDoc.getElementsByTagName(nodeName_i);
     
    alert('nodeName_i: ' + nodeName_i);
    <!-- ABBRUCH!? -->
    alert('childnodesTT: ' + x[i].nodeName);
    alert('childnodes Value: ' + x[i].childNodes[0].firstChild.nodeValue);
    alert('childnodes Length: ' + x[i].childNodes.length);
     
    alert('Schleifenende: ' + i);
     
    }


    Xml:
    HTML-Code:
    <?xml version="1.0" encoding="Windows-1252" standalone="no"?>
    <oben>
      <Eintrag0>
        <u01>A01</u01>
        <u02>A02</u02>
        <u03>A2013</u03>
      </Eintrag0>
      <Eintrag1>
        <u01>B01</u01>
        <u02>B02</u02>
        <u03>B2013</u03>
      </Eintrag1>
      <Eintrag2>
        <u01>C01</u01>
        <u02>C02</u02>
        <u03>C2013</u03>
      </Eintrag2>
    </oben>
    Geändert von mikdoe (17-12-2013 um 13:12 Uhr) Grund: Code Tags gesetzt

  2. #2
    rico2009 Guest

    AW: Xml for schleife läuft nur einmal denkfehler?

    Anscheinend enthält x einen falschen Wert oder die Variable "ItemsCount" enthält eine 1.

    Wie äußert sich denn das "hängen"? Was sagen die alerts? Gibt es sonstige Fehler in der Konsole?

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

    AW: Xml for schleife läuft nur einmal denkfehler?

    Anscheinend gibt es kei´n Element mit dem Tagnamen "#text" oder anders gesagt, das 1. Element ist nicht wie du erwartest Eintrag0, sondern "\n ". oder vielleicht auch nur "\n" und das 2. ist " "

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

    AW: Xml for schleife läuft nur einmal denkfehler?

    1. Was steht in der Fehlerkonsole?
    2. x enthält eine HTMLCollection mit maximal einem Eintrag, deswegen kann x[i] nur beim ersten Durchlauf einen definierten Wert zurückliefern...
    3. Warum machst du das mit dem x überhaupt? Über die .childNodes hast du dein Element doch schon...

    PS: man sollte DOM-Anfragen (wie document.getElementsByTagName()) möglichst sparsam einsetzen und deren Rückgabewerte zwischenspeichern, da sie langsam sind.

    @hesst: ich dachte immer, dass in XML solche "leeren" Textnodes entfernt werden und das Problem nur in HTML besteht.

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 06-04-2011, 13:36
  2. Attribut wird einmal gesetzt, einmal nicht
    Von Generic1 im Forum JavaScript
    Antworten: 5
    Letzter Beitrag: 20-07-2009, 13:25
  3. SetAttribute funktioniert in Schleife nur einmal
    Von mastermueller im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 16-04-2009, 20:27
  4. [PHP] denkfehler?
    Von schwerminator im Forum Serverseitige Programmierung
    Antworten: 6
    Letzter Beitrag: 15-11-2004, 22:46
  5. denkfehler ???
    Von Byteandi im Forum Site-Check
    Antworten: 5
    Letzter Beitrag: 07-10-2004, 18:27

Stichworte

Lesezeichen

Berechtigungen

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