Brauche dringend Hilfe um XML mit PHP aus zu lesen

  • Hallo ich stehe hier vor einem großen Problem,
    ich möchte Teile aus einer XML Datei von einem externen Server laden und auf meiner Webseite anzeigen. Allerdings möchte ich nur bestimmte Teile daraus anzeigen.


    Ich habe unter schon mal eine gute Anleitung gefunden und ein PHP Script das schon mal funktioniert.
    Hier die Seite: http://www.pc-magazin.de/praxi…page.php?table=pg&id=1227


    hier das Beispiel wie es jetzt angezeigt wird:
    http://www.zunami.de/horoskope.php
    Und das ist das PHPScript dazu:


    <?php
    function elem_start($xml_parser, $name, $attribute) {
    if($name=="name"){
    echo "<br /><br />Sternzeichen: ";
    xml_set_character_data_handler($xml_parser, "cdata_ausgeben");
    } else if($name=="text"){
    echo "<br />Inhalt: ";
    xml_set_character_data_handler($xml_parser, "cdata_ausgeben");
    } else if($name=="signID"){
    echo "<br />: ";
    xml_set_character_data_handler($xml_parser, "cdata_nichtausgeben");
    }
    }


    function elem_ende($xml, $name) {
    }


    function cdata_ausgeben($xml, $daten) {
    echo htmlspecialchars($daten);
    }
    function cdata_nichtausgeben($xml, $daten) {
    }



    $xml_parser = xml_parser_create();
    xml_parser_set_option ($xml_parser, XML_OPTION_CASE_FOLDING, false);
    xml_set_element_handler($xml_parser, "elem_start", "elem_ende");
    $daten = file_get_contents("http://www.zunami.de/tag_aktuell.xml");
    xml_parse($xml_parser, $daten, true);
    xml_parser_free($xml_parser);
    ?>


    Die einzelnen Sternzeichen unterscheiden sich jetzt von der
    <signID>10</signID> oder <name>Steinbock</name>,
    wie bekomme ich es hin das ich z.B. nur das Horoskope vom Steinbock angezeigt bekomme?
    Ich bin was PHP angeht noch ein Anfänger, villeicht hat hier jemand so viel Ahnung davon das er mir meinen Code so anpassen kann das es Funktioniert.
    Bitte Bitte Helft mir!

  • Also ich habe mal eine XML-Datei mit den einfachen PHP-Hausmitteln ausgelesen. Also mit fopen öffnen und komplett auslösen.
    Dann könntest du zum Beispiel mit strpos nach <signID>10</signID> suchen und von dieser Position an (offset) nach einem anderen Tag, der das Ende des Blocks signalisiert. Mit substr erhälst du dann das dazwischen, dass du wieder weiter analysieren kannst. Ist vielleicht nicht die galanteste Lösung, aber dafür ziemlich flexibel, du musst halt nur mit den zwei Funktionen spielen.