RSS wird falsch ausgegeben
xxxMaster
- php
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ßball mit den Unterschriften der <a href="http://www.southafrika2010.de/nationalmannschaft-trikot/" target="_blank">Deutschen Nationalmannschaft</a>. Bei Aldi-Süd gab es den Ball schon etwas früher, nämlich ab Mittwoch, den 12.05. Es wird nun angenommen, dass der Ball in Originalgröß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
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
print "<pre>";
print_r($rss);
print "</pre>";
exit;
Toll! Dann druckt er bei mir http://www.southafrika2010.de/feed/ aus!
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
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