kostenloser Webspace werbefrei: lima-city


PHP || XML-Datei mit variabler Anzahl an Child-Nodes parsen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    adelwoehrer

    Kostenloser Webspace von adelwoehrer

    adelwoehrer hat kostenlosen Webspace.

    Ich habe eine XML-Datei, deren Nodes, sowie alle Child-Nodes dieser Nodes und die Child-Nodes der Child-Nodes (usw.) in eine MySQL-Datenbank importiert werden sollen.
    Nun haben die Nodes aber eine unterschiedliche Anzahl von Child Nodes, und ich komme einfach nicht dahinter, wie ich das in einer Schleife sinnvoll durchlaufen kann.

    Mein Code sieht derzeit ungefähr so aus.
    foreach ($xml->children() as $second_gen)
    {
        In MySQL eintragen....
    
        foreach ($second_gen->children() as $third_gen)
        {
            In MySQL eintragen....
    
            foreach ($third_gen->children() as $fourth_gen)
            {
                In MySQL eintragen....
            }
        }
    }


    Wie ihr seht, frage ich jede Child-Node nach weiteren Child-Nodes ab, ohne zu wissen, ob sie überhaupt Child-Nodes haben.
    Ich kann das jetzt natürlich bis zu 20 Child-Nodes verschachteln, dann wird sicher keine ausgelassen....das halte ich aber nicht für eine sehr elegante Lösung.

    Ich müsste also irgendwie prüfen, ob eine Child-Node vorhanden ist.
    Das allein wäre nicht so das Problem....aber wie lege ich fest, dass die Schleife dann eine Ebene tiefer geht? (Also zur untergeordneten Child-Node?)
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    adelwoehrer schrieb:
    Das allein wäre nicht so das Problem....aber wie lege ich fest, dass die Schleife dann eine Ebene tiefer geht? (Also zur untergeordneten Child-Node?)
    Indem du das durchlaufen der Childnodes rekursiv aufbaust:

    Es wird nach Child-Nodes gesucht
    Wenn welche gefunden werden: gleiche Funktion mit dem Childnode als root aufrufen.
    Wenn nichts gefunden wurde: Node-Daten des aktuellen Nodes verarbeiten und mit dem nächsten Node weitermachen.
  4. Autor dieses Themas

    adelwoehrer

    Kostenloser Webspace von adelwoehrer

    adelwoehrer hat kostenlosen Webspace.

    Die Logik dahinter ist mir soweit klar.
    Ich weiß nur nicht, wie das im Code dann aussehen soll.
    Hast Du ein Beispiel?


    EDIT:

    Gedankenblitz. -.-
    Hätte mir eigentlich gleich in den Sinn kommen können, das ganze in einer Funktion zu verpacken.
    Danke für den Denkanstoß.

    Beitrag zuletzt geändert: 16.4.2012 13:59:16 von adelwoehrer
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!