Thema: "Parsen" eines XML dokumentes

hallo, ich möchte den inhalt von:
http://www.tagesschau.de/xml/tagesschau … 0,,,00.xml
auf meiner webseite ausgegeben bekommen.
Ich weiß aber nicht, wie ich dies machen kann...
(Habe keine Ahnung von XML, etc)

Soll dann in eine html tabelle rein.
<table>
<tr><td>Schlagzeile</a></td><td>Copyright</td></tr>
<tr><td><a href="link1">Titel1</a></td><td>Copyrights1</td></tr>
<tr><td><a href="link2">Titel2</a></td><td>Copyrights2</td></tr>
<tr><td><a href="link3">Titel3</a></td><td>Copyrights3</td></tr>
<tr><td><a href="link4">Titel4</a></td><td>Copyrights4</td></tr>
[...]
</table>
Könnt ihr mir helfen?

Lebe deine Träume so wie sie sind,
denn nur so kannst du weiterhin träumen!

2

Re: "Parsen" eines XML dokumentes

Hi sometimes2!

Ok, du kannst den Inhalt mit PHP auslesen:

<?
// Auslesen des RSS-Feeds

$timeout="10";  // Abbruch, wenn keine Verbindung nach 10sek.
$rss_url=parse_url($read_rss_feed);
$fp=fsockopen($rss_url['host'], 80, &$errno, &$errstr, $timeout);
if(!$fp){
    echo("Fehler: $errno - $errstr<br>n");
} else {
    fputs($fp, "GET ".$rss_url['path']." HTTP/1.1rnHost: ".$rss_url['host']."rnrn");
    while(!feof($fp)){
        $rss_content.=fgets($fp,128);
    }
    fclose ($fp);
}

// Funktion zur Ausgabe des RSS-Feeds

function show_rss(){
    global $rss_content;

    $rss_feed=$rss_content;

    // Weg mit dem Muell
    $rss_feed=ereg_replace("<?xml.*/image>", "", $rss_feed);
    $rss_feed=ereg_replace("</rss.*", "", $rss_feed);
    $rss_feed=chop($rss_feed);

    // Ausgabe
    $items=explode("</item>", $rss_feed);
    array_walk($items, 'generate_html');
}

// Funktion zur Entfernung von HTML-Tags

function trans_html($pattern) {
    $trans=get_html_translation_table(HTML_ENTITIES);
    $trans=array_flip($trans);
    $original=strtr($pattern, $trans);
    $original=strip_tags($original);
    return $original;
}

// Funktion zur Aufbereitung des RSS-Feeds

function generate_html($item){
    global $rss_name;

// RSS-Feed parsen

    $item=str_replace("<channel>", "", $item);
     $item=trim(str_replace("</channel>", "", $item));
     $link=ereg_replace(".*<link>", "", $item);
     $link=ereg_replace("</link>.*", "", $link);
     $item=trim(str_replace("<link>", "", $item));
     $item=trim(str_replace("</link>", "", $item));
    $description=ereg_replace(".*<description>", "", $item);
    $description=ereg_replace("</description>.*", "", $description);

    $title=ereg_replace(".*<title>", "", $item);
    $title=ereg_replace("</title>.*", "", $title);

    // HTML-Tags entfernen

    $title=trans_html($title);
    $description=trans_html($description);

     // Hinzufuegen von Slashes fuer Hidden-Fields, Entfernen für Ausgabe

     $title=stripslashes($title);
     $description=stripslashes($description);
     $hidden_title=htmlspecialchars($title);
     $hidden_description=htmlspecialchars($description);

    // Ausgabe

     if(!empty($title)){

        print('<tr><td width="20"><img src="../gfx/pfeil_in_kasten.gif" width="15" height="15" alt=""></td>');
         print('<td valign="top"><a href="'.$link.'" class="txt"><b>'.$title.'</b></a></td>');
         echo "n";
         print('</tr><tr><td width="20"> </td>');
         print('<td>'.$description.'</td>');
         print('</tr><tr><td width="20"> </td>');
       
         print('<td><form method="post"
         action="add_rss.php"><input type="image" border="0" name="imageField" src="../gfx/add.gif" width="64"
         height="13">
         <input type="hidden" name="rss_name" value="'.$rss_name.'">
        <input type="hidden" name="title" value="'.$hidden_title.'">
         <input type="hidden" name="posting" value="'.$hidden_description.'">
         <input type="hidden" name="link" value="'.$link.'"></form></td>');
     }
}
 
?>

Du musst nur noch für die Variable: $read_rss_feed
Die URL einsetzen! (oder so  <img border="0" title="" alt="[Durcheinander]" src="images/icons/confused.gif" /> )

Grüssle    <img border="0" title="" alt="[Lächeln]" src="images/icons/smile.gif" />   
-- Nobody
 
  <small>[ 26-06-2002, 16:25: Beitrag editiert von: Nobody ]</small>

Nun freilich starren Sinnes zu behaupten, daß das, was ich gesprochen habe, auch unbedingte Wahrheit sei, das schickt sich nicht für einen, der zu denken pflegt. - Platon

Re: "Parsen" eines XML dokumentes

Hallo, erstmal danke, aber es funktioniert nicht...
Es gibt zwar keine Fehlermeldung, aber die Seite bleibt weiß...

Lebe deine Träume so wie sie sind,
denn nur so kannst du weiterhin träumen!

4

Re: "Parsen" eines XML dokumentes

Jo, hehe, sorry, das hab ich nur rausgerissen, ich denke da fehlt was........

Aber:

Ich hab was anderes für dich!

Das ist der Code für den RssReader:

  </font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;"> <body>
    <form action="<?php print $PHP_SELF; ?>" method="get">
        <p>RSS-File: <input type="text" name="rssfile" size="50" value="http://robwei.digigeek.net/v1.666/rss.xml" /></p>
        <p>XSL-File: <input type="text" name="xslfile" size="50" value="http://www.robwei.de/ex-area/rssreader/rss.xsl" /></p>
        <p><input type="submit" value="read it!" /></p>
    </form>
</body>
</html>
<?php

}
else
{
    $rss = '';
    $file = fopen ($rssfile, 'r');
    while (!feof ($file))
    {
        $rss .= fread ($file, 4096);
    }
    fclose ($file);
    $rss = preg_replace ("/<rss(.)/", "<?xml-stylesheet type="text/xsl" href="$xslfile"?>n<rss\1", $rss);
    header ('Content-Type: text/xml');
    print $rss;
}

?> [/code]</blockquote><font size="2" face="Verdana, Helvetica, sans-serif">Danach brauchste noch ne XSL-Sheet:

  </font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;"> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html"/>

    <xsl:template match="/">
        <h1>RSS-Reader</h1>
        <hr />
        <xsl:for-each select="rss">
            <xsl:apply-templates/>
        </xsl:for-each>
    </xsl:template>
   
    <xsl:template match="channel">
        <h2>
            <xsl:value-of select="title"/>
        </h2>
        <h3>
            <xsl:value-of select="link"/>
        </h3>
        <p>
            Letzter Build: <xsl:value-of select="lastBuildDate"/>
        </p>
        <xsl:for-each select="item">
            <hr />
            <p>
                <strong><xsl:value-of select="title"/></strong>
                <xsl:choose>
                    <xsl:when test="description">
                        <br /><xsl:value-of select="description"/>
                    </xsl:when>
                </xsl:choose>
                <br /><em><xsl:value-of select="link"/></em>
            </p>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet> [/code]</blockquote><font size="2" face="Verdana, Helvetica, sans-serif">Das speicherst du unter *.xsl!

So sollte es gehen!

Nun freilich starren Sinnes zu behaupten, daß das, was ich gesprochen habe, auch unbedingte Wahrheit sei, das schickt sich nicht für einen, der zu denken pflegt. - Platon

Re: "Parsen" eines XML dokumentes

und wo binde ich code 2 in code 1 ein?
(fängt ja mit } else an)

Lebe deine Träume so wie sie sind,
denn nur so kannst du weiterhin träumen!

6

Re: "Parsen" eines XML dokumentes

Oh je, schon wieder ein kleiner Fehler!
Also, du machst dir ne Datei: reader.php
In diese Datei kommt der Code rein:

  </font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;"><?php

if (empty ($rssfile)

Nun freilich starren Sinnes zu behaupten, daß das, was ich gesprochen habe, auch unbedingte Wahrheit sei, das schickt sich nicht für einen, der zu denken pflegt. - Platon

7

Re: "Parsen" eines XML dokumentes

Also irgendwer hat gerade gespinnt? Auf jeden Fall nimmt der mein Cookie nicht mehr an?!

Na ja, also nochmal:

  </font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;"> <?php

if (empty ($rssfile)

Nun freilich starren Sinnes zu behaupten, daß das, was ich gesprochen habe, auch unbedingte Wahrheit sei, das schickt sich nicht für einen, der zu denken pflegt. - Platon

8

Re: "Parsen" eines XML dokumentes

Also irgendwer hat gerade gespinnt? Auf jeden Fall nimmt der mein Cookie nicht mehr an?!
Und schon wieder!
Na ja, also nochmal:

  </font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;"> <?php

if (empty ($rssfile)

Nun freilich starren Sinnes zu behaupten, daß das, was ich gesprochen habe, auch unbedingte Wahrheit sei, das schickt sich nicht für einen, der zu denken pflegt. - Platon

9

Re: "Parsen" eines XML dokumentes

So, irgendwer kann jetzt mal die letzen drei posts löschen, es geht irgendwie nix mehr bei mir! Ich schreib mir da alles Wund und was macht das Sch****** Board?     <img border="0" title="" alt="[Wütend]" src="images/icons/mad.gif" />        <img border="0" title="" alt="[Wütend]" src="images/icons/mad.gif" />        <img border="0" title="" alt="[Wütend]" src="images/icons/mad.gif" />        <img border="0" title="" alt="[Wütend]" src="images/icons/mad.gif" />        <img border="0" title="" alt="[Wütend]" src="images/icons/mad.gif" />        <img border="0" title="" alt="[Wütend]" src="images/icons/mad.gif" />        <img border="0" title="" alt="[Wütend]" src="images/icons/mad.gif" />        <img border="0" title="" alt="[Wütend]" src="images/icons/mad.gif" />   

So, den Post gibt es unter: http://nobody.gmgn.de/beta/post.txt
Beispiel zum gesagten: http://nobody.gmgn.de/beta/rss_reader.php

Ich mag nimmer!
 
  <small>[ 29-06-2002, 11:03: Beitrag editiert von: Nobody ]</small>

Nun freilich starren Sinnes zu behaupten, daß das, was ich gesprochen habe, auch unbedingte Wahrheit sei, das schickt sich nicht für einen, der zu denken pflegt. - Platon

Re: "Parsen" eines XML dokumentes

das kann ich verstehen  <img border="0" title="" alt="[Lächeln]" src="images/icons/smile.gif" />
erstmal danke...
nur, er mag den titel nicht anzeigen

Lebe deine Träume so wie sie sind,
denn nur so kannst du weiterhin träumen!

11

Re: "Parsen" eines XML dokumentes

Tja, also irgendwie mag der zwar mein rss file aber nicht dein tagesschau-teil!   <img border="0" title="" alt="[Schüchtern]" src="images/icons/rolleyes.gif" />  mom......... ok, die Fehler sind wech, er lieÃ?t aber leider nimmer......... oki, jetzt weiÃ? ich worans liegt, dass könnt aber länger dauern..... nun ja, du weiÃ?t ja jetzt den Code und das RSS Sheet hast ja auch.

Nun freilich starren Sinnes zu behaupten, daß das, was ich gesprochen habe, auch unbedingte Wahrheit sei, das schickt sich nicht für einen, der zu denken pflegt. - Platon

Re: "Parsen" eines XML dokumentes

wenn du rausbekommst, wie ich das zeug anzeigen kann (titel), dann freu ich mich um so mehr...  <img border="0" title="" alt="[Lächeln]" src="images/icons/smile.gif" />  <img border="0" title="" alt="[Lächeln]" src="images/icons/smile.gif" />
Und zeit hab ich auch   <img border="0" title="" alt="[Winken]" src="images/icons/wink.gif" />

Lebe deine Träume so wie sie sind,
denn nur so kannst du weiterhin träumen!

13

Re: "Parsen" eines XML dokumentes

@ work! Bis übermorgen hab ichs!   <img border="0" title="" alt="[Winken]" src="images/icons/wink.gif" />

Nun freilich starren Sinnes zu behaupten, daß das, was ich gesprochen habe, auch unbedingte Wahrheit sei, das schickt sich nicht für einen, der zu denken pflegt. - Platon

14

Re: "Parsen" eines XML dokumentes

Haha, jetzt is mir eingefallen:
Des von der Tagesschau in meinem Reader nich funzt ist klar: Liegt am XSLT das standardmäßig verwendet wird, das ist für RSS 0.92 ausgelegt und nicht für RSS 1.0. Schreib dir nen passendes XSLT und dir ist geholfen!

Ich prog eh schon, aber das dauert halt noch......
(mindestens 2 Tage)

Nun freilich starren Sinnes zu behaupten, daß das, was ich gesprochen habe, auch unbedingte Wahrheit sei, das schickt sich nicht für einen, der zu denken pflegt. - Platon

15

Re: "Parsen" eines XML dokumentes

Sorry sometimes, hab im Moment ziemlich wenig Zeit zum schreiben, hoffe du hast es schon selbst geschafft?!

Sonst gibt es hier einen wunderschönen Artikel dazu: http://www.stefan-fischer.net/content.p … =rssparser

Nun freilich starren Sinnes zu behaupten, daß das, was ich gesprochen habe, auch unbedingte Wahrheit sei, das schickt sich nicht für einen, der zu denken pflegt. - Platon