[PHP] XML sauber auslesen.

Dieses Thema im Forum "Webentwicklung" wurde erstellt von x69, 27. Januar 2009 .

Schlagworte:
  1. 27. Januar 2009
    XML sauber auslesen.

    Hey Folks,

    bin grade dabei mir ein PHP-Script zu schreiben womit ich meine XML-Playlist (JW:FLV-Player) erst in ein Formular einlese und danach so bearbeiten kann. Das schreiben bereitet mir keine Probleme das lesen aber. Mit der Funktion simplexml_load_file() krieg ich den Text nur sehr unsauber ausgelesen, d.h da steht dann hinter jedem Wert sowas wie String[81] und das rausfischen dieser "Unreinheiten" wäre mir zu kompliziert :angry:.
    Danke schonmal für die Hilfe.

    Gruß x69
     
  2. 27. Januar 2009
    AW: XML sauber auslesen.

    Du machst ein $xml = simplexml_load_file('test.xml');

    wie gibst du das $xml aus? Mit var_dump? Ist natürlich falsch. Du bekommst ja ein Objekt.

    Hab dir einfach mal was aus den Kommentaren zur FUnktion von php.net kopiert. Da steht eigentlich alles drin was du brauchst.

    PHP:
    To correctly extract a value from a CDATA just make sure you cast the SimpleXML Element to a string value by using the cast operator:

    <?php
    $xml 
    '<?xml version="1.0" encoding="UTF-8" ?>
    <rss>
        <channel>
            <item>
                <title><![CDATA[Tom & Jerry]]></title>
            </item>
        </channel>
    </rss>'
    ;

    $xml  simplexml_load_string ( $xml );

    // echo does the casting for you
    echo  $xml -> channel -> item -> title ;

    // but vardump (or print_r) not!
    var_dump ( $xml -> channel -> item -> title );

    // so cast the SimpleXML Element to 'string' solve this issue
    var_dump ((string)  $xml -> channel -> item -> title );
    ?>

    Above will output:

    Tom & Jerry

    object(SimpleXMLElement)#4 (0) {}

    string(11) "Tom & Jerry"



    Also nehmen wir an du hast ne XML mit folgender Struktur.
    Code:
    <rss>
     <channel>
     <item>
     <title><![CDATA[Tom & Jerry]]></title>
     </item>
     <item>
     <title><![CDATA[Title2]]></title>
     </item>
     </channel>
    </rss>
    
    Kannst halt mit folgendem Code einen Titel ausgeben, der in ner xml drin ist.

    PHP:
    foreach ( $xml -> channel [ 0 ]-> item  as  $item )
    {
        echo 
    $item -> title [ 0 ];
    }
     
  3. 28. Januar 2009
    AW: XML sauber auslesen.

    Danke schonmal.

    Gilt die Funktion simplexml_load_file() nur für Lokale XML Dateien oder schluckt die auch ne remote URL like http://www.text.de/playlist.xml??
     
  4. 28. Januar 2009
    AW: XML sauber auslesen.

    für remote-datein kannst du file_get_contents() verwenden und dann die funktion simplexml_load_string()
     
  5. 28. Januar 2009
    AW: XML sauber auslesen.


    Entweder machst du es so wie Murdoc sagt oder du siehst auch mal in die von mir erwähnte Dokumentation auf php.net


     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.