Andreas: xml parsen und ausgaben

Hallo,
ich bin absoluter Anfänger in xml und habe schon stundenlang gesucht aber keine Lösung gefunden.
Ich habe mir vorgenommen die amazon aws welche in xml geliefert werden zu parsen und auszugeben, sozusagen als Einstieg(wenn vieleicht auch etwas schwierig).

Nun stehe ich vor der hörde wie ich die Datei parse und auf die tags zugreifen kann.
So bekomme ich zwar den Text angezeigt jedoch nicht die Tags:

$xmlFile = file("$parse_url");
$parser = xml_parser_create();
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "cdata");

foreach($xmlFile as $elem)
{
xml_parse($parser, $elem);
}
xml_parser_free($parser);
echo $ausgabe;

MfG. Andreas

  1. echo $begrüßung;

    Nun stehe ich vor der hörde wie ich die Datei parse und auf die tags zugreifen kann.
    So bekomme ich zwar den Text angezeigt jedoch nicht die Tags:

    xml_set_element_handler($parser, "startElement", "endElement");

    Wenn du Handlerfunktionen definierst, solltest du diese Funktionen auch implementieren, sonst wird das nichts. Diese Funktionen bekommen über Parameter den Tag-Namen und die Attribute. Siehe z.B: Example 1 auf Handbuchseite zu den XML Parser Functions

    echo "$verabschiedung $name";

    1. hi, also bin ich auf dem komplett falschen weg . :-( habe echt keinen schimmer wie ich auf die Tags zugreifen kann.
      Gibt es eine Seite mit einem Beispiel wo ich sehen kann wie der php Code aussieht?
      Hier sind zwar Beispiele aber ich glaube nicht das es das ist was ich suche: http://de2.php.net/manual/en/ref.xml.php

      1. Hallo Allgemein.

        hi, also bin ich auf dem komplett falschen weg . :-( habe echt keinen schimmer wie ich auf die Tags zugreifen kann.

        Wenn du PHP5 zur Verfügung hast, kannst du dir die Arbeit vereinfachen:

        http://de2.php.net/manual/de/function.simplexml-load-file.php

        Einen schönen Samstag noch.

        Gruß, Ashura

        --
        Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:[ js:|
        30 Days to becoming an Opera8 Lover -- Opera Mini on Treo
        Meine Browser: Opera 8.02 | Firefox 1.0.6 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0
        [Deshalb frei! - Argumente pro freie Software]
        1. sorry natürlich nicht Allgemein sondern Andreas, muß bei der Auswahl verutscht sein.

          Nein Php5 steht nicht zur Verfügung arbeite mit Php4

          Andreas

          1. Moin!

            Nein Php5 steht nicht zur Verfügung arbeite mit Php4

            Ein Beispiel sagt mehr als tausend Worte.

            http://www.it-schule.de/webservice/xmltest.php

            Andreas

            MFFG (Mit freundlich- friedfertigem Grinsen)

            fastix®

            --
            Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
          2. Hallo Andreas,

            wenn Du mit XML arbeiten möchtest rate ich Dir wenn es irgendwie geht auf PHP5 umzusteigen. Es gibt verschiedene Möglichkeiten XML zu verarbeiten. Eine kurze Zusammenfassung.

            SAX in PHP4 und PHP5: Das ist der Weg den Du in Deinem Beispiel probierst. Dabei wird die XML Datei als ein Datenstrom betrachtet, und es wird mit Handlerfunktionen auf bestimmte Elemente reagiert. Dieser Weg ist dann vorteilhaft, wenn man sehr große XML Dateien verarbeitet, da die Datei nie vollständig in den Speicher geladen wird. Ansonsten ist SAX umständlich und nicht wirklich intuitiv.

            DOM in PHP4: Das Document Object Model (DOM) lädt die XML Datei in eine Baumstruktur. Es ist ein Standard vom W3C, der in verschiedenen Programmiersprachen implementiert werden kann. Ein DOM Baum lässt sich auch wieder in XML umwandeln, deshalb ist DOM auch geeignet um XML zu erzeugen. In PHP4 ist die Implementierung absolut nicht Standardkonform.

            DOM in PHP5: ist Standardkonform, und deshalb zu empfehlen.

            SimpleXML: Eine PHP eigener Ansatz, ein XML Dokument wird in eine PHP Datenstruktur eingelesen. Falls Du XML nur Lesen willst, der einfachste Weg, falls Du auch XML erzeugen willst, nicht brauchbar.

            Hoffe das hilft weiter, die Details kannst Du Dir selbst anlesen (z.B. in der Doku zu PHP).

            Grüsse

            Marko

            1. hi,
              also php5 steht leider nicht zur Verfügung, mir geht es auch nur um das auslesen der xml. Ich werde mich mal durchlesen und schauen was ich zu SimpleXML finde.

              Andreas

              1. Hallo Andreas,

                hab leider vergessen zu erwähnen, dass SimpleXML erst in PHP5 zur Verfügung steht.  Was es ansonsten noch gibt sind XSL Transformationen, damit kannst Du XML in etwas anderes umwandeln. Das kann wieder XML sein, aber auch jedes andere Textformat. (Mit XSL:FO, das in PHP allerdings nicht direkt zur Verfügung steht geht sogar PDF und Grafikformate).
                Nochmal mein Rat, wenn Du ernsthaft XML in PHP einsetzen willst, wechsle lieber den Hoster (wahrscheinlich hat Dein Hoster sowieso nichtmal in PHP4 die XML Extensions aktiviert, dann geht garnichts).
                Mit der veralteten PHP4 XML Unterstützung rumzufummeln bringt garnichts, kostet nur Zeit, glaub mir.

                Grüsse

                Marko

  2. Moin!

    $xmlFile = file("$parse_url");

    ...

    foreach($xmlFile as $elem)

    Was interessieren Dich die Zeilen einer XML-Datei?

    Du willst diese sicher als XML und nicht als zeilenorientierte Datensammlung verarbeiten.

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development