xxxMaster: RSS wird falsch ausgegeben

So jetzt hab' ich noch ein Problem:

  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01  
	Transitional//EN">  
<html>  
<head>  
  <title>Feedreader</title>  
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">  
</head>  
<body><table width="140"><tr><td>  
<h1>WM 2010 News</h1>  
<?php  
$url = "http://www.southafrika2010.de/feed/";  
$output = "";  
if ($rss = @simplexml_load_file($url)) {  
  foreach ($rss->channel->item as $item) {  
    $output .= "<h3>{$item->title}</h3>";  
	$output .= "<p>{$item->description->content->p->strong}</p>";  
    $output .= "<div><a href='{$item->link}'>mehr lesen</a></div><hr>";  
  }  
  echo utf8_decode($output);  
} else {  
  echo "<div>Auslesen nicht erfolgreich!</div>";  
}  
?></td></tr></table>  
</body>  
</html>  

$url ist mein Rss-Feed: http://www.southafrika2010.de/feed/

Schön und gut, aber ich will nur das fett gedruckte.
So sieht eine Passage aus, ich hab sie hier zu Demozwecken verkürzt:

  
  
<item>  
<title>...</title>  
<link>...</link>  
<description>  
...  
</description>  
<content:encoded>  
<![CDATA[  
<p>  
<strong>  
<img ... />  
Ab morgen, Montag den 31.05.2010 gibt es bei Aldi Nord einen Fu&#223;ball mit den Unterschriften der <a href="http://www.southafrika2010.de/nationalmannschaft-trikot/" target="_blank">Deutschen Nationalmannschaft</a>. Bei Aldi-S&#252;d gab es den Ball schon etwas fr&#252;her, n&#228;mlich ab Mittwoch, den 12.05. Es wird nun angenommen, dass der Ball in Originalgr&#246;&#223;e erneut schnell vergriffen sein wird.  
</strong>  
</p>  
...  
]]>  
  
  
Ich wiederhole: Ich will nicht das aus description, sondern aus content->p->strong  
  
anscheinend prügelt er sich aber mit cdata... wie kann ich das ändern  
  
danke, euer xxxMaster  

  1. Moin!

    So jetzt hab' ich noch ein Problem:

    Lass Dir mal mit:
    [code lang=php]
    #/*
    print "<pre>";
    print_r($rss);
    print "</pre>";
    exit;
    #*/
    [code lang=php]

    Die Daten ausgeben, die Du wirklich hast. Dann dürfte Deine Fragestellung eine ganz andere sein.

    fastix

    1. print "<pre>";
      print_r($rss);
      print "</pre>";
      exit;

      Toll! Dann druckt er bei mir http://www.southafrika2010.de/feed/ aus!

      1. Moin!

        Toll! Dann druckt er bei mir http://www.southafrika2010.de/feed/ aus!

        Dann solltest Du WIRKLICH schauen, was Du da machst. Ich habe da nämlich etwas GANZ anderes als Ergebnis.

        Neben print_r($rss)
        bietet sich noch var_dump($rss);
        und print var_export($rss);
        an.

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix

  2. Hi,

    $output .= "<p>{$item->description->content->p->strong}</p>";

    Du willst also im description-Element auf das content-Element, darin auf das p-Element und darin wiederum auf das strong-Element zugreifen.

    <description>
    ...
    </description>
    content:encoded
    <![CDATA[
    <p>
    ...
    ]]>

    Demnach hast Du gar kein content-Element. Und schon gar nicht im description-Element.

    Im encoded-Element (im namespace content) gibt es auch kein p-Element, sondern nur einen text-node.

    Ich wiederhole: Ich will nicht das aus description, sondern aus content->p->strong

    Derartige Elemente finden sich in Deinem Beispiel-XML gar nicht.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.