• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

XML einlesen und ausgeben?

Fr3ddy

Mitglied
Hi, ich habe eine von wordpress exportierte xml datei und möchte den tag <link> via php ausgeben lassen.

Script zum einlesen:
PHP:
 <?php
header('Content-Type: text/html; charset=utf-8');
/**
 * Den Pfad zu der XML Datei mit einschließlich
 * den Dateinamen
 */

$xml_datei='wp.xml';
/**
 * Hier wird geprüft ob die XML Datei existiert
 */
if (@file_exists($xml_datei)!=false) {
    /**
     * Mit der PHP Funktion simplexml_load_file()
     * wird die XML Datei eingelesen und anschließend
     * als Objekt in der Variable $xml_object gespeichert.
     */
    $xml_object = simplexml_load_file($xml_datei);
    /**
     * Prüfen ob in der Variable $xml_object
     * ein Objekt vorhanden ist.
     */
    if(is_object($xml_object->item)==true){
        /**
         * Nun wird mit einer so genannten
         * foreach-Schleife das Objekt durchlaufen.
         */
        foreach($xml_object->item as $key =>$value){
            /**
             * Ausgabe der einzelnen Objekte
             */
            echo '<b>'.$value->link.'</b><br>';
        }
    } 
} else {
    /**
     * Falls die XML Datei nicht
     * geöffnet werden konnte, brechen
     * wir das Script mit exit() ab.
     */
    exit('Konnte '.$xml_datei.' nicht öffnen.');
}
?>

xml datei:

HTML:
<?xml version="1.0" encoding="UTF-8" ?>

<rss version="2.0"
    xmlns:excerpt="http://wordpress.org/export/1.2/excerpt/"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:wp="http://wordpress.org/export/1.2/"
>

<channel>
    <generator>http://wordpress.org/?v=3.4.1</generator>

    <item>
        <title>Totel</title>
        <link>http://www.domain.de/link-fur-ausgabe</link>
        <pubDate>Wed, 15 Feb 2012 07:15:52 +0000</pubDate>
        <dc:creator>admin</dc:creator>
        <guid isPermaLink="false">http://www.domain.de/?p=12</guid>
        <description></description>
        <content:encoded><![CDATA[<!--:de-->

<!--:-->]]></content:encoded>
        <excerpt:encoded><![CDATA[]]></excerpt:encoded>
        <wp:post_id>12</wp:post_id>
        <wp:post_date>2012-02-15 07:15:52</wp:post_date>
        <wp:post_date_gmt>2012-02-15 07:15:52</wp:post_date_gmt>
        <wp:comment_status>open</wp:comment_status>
        <wp:ping_status>open</wp:ping_status>
        <wp:post_name></wp:post_name>
        <wp:status>publish</wp:status>
        <wp:post_parent>0</wp:post_parent>
        <wp:menu_order>0</wp:menu_order>
        <wp:post_type>post</wp:post_type>
        <wp:post_password></wp:post_password>
        <wp:is_sticky>0</wp:is_sticky>
        <category domain="category" nicename="analyse"><![CDATA[Analyse]]></category>
        <category domain="post_tag" nicename="analyze"><![CDATA[Analyze]]></category>
        <category domain="post_tag" nicename="clickrates"><![CDATA[Clickrates]]></category>
        <category domain="category" nicename="sonstiges"><![CDATA[Sonstiges]]></category>
        <wp:postmeta>
            <wp:meta_key>_edit_last</wp:meta_key>
            <wp:meta_value><![CDATA[1]]></wp:meta_value>
        </wp:postmeta>
        <wp:postmeta>
            <wp:meta_key>wpl_enable_sidebar</wp:meta_key>
            <wp:meta_value><![CDATA[true]]></wp:meta_value>
        </wp:postmeta>
    </item>
    </channel>
</rss>
Allerdings bleibt meine seite leer, wenn ich das script starte.

LG & danke
 
Dann musst du eben mal schauen wo dein Script aussteigt.

Ich mache es immer so, dass ich nach jedem if()/foreach() etc. ein echo platziere. So zB

PHP:
if($a == $b):
     echo 'OK1';
     foreach($a as $b):
           echo 'OK2';
     endforeach;
endif;

Dort wo nun ein OK fehlt, hat das Script auch aufgehört.

PHP:
foreach($xml_object->channel->item as $key =>$value)
 
Zuletzt bearbeitet:
Zurück
Oben