Seite 1 von 2
RSS-Reader mit PB-XML-Funktionen?
Verfasst: 18.05.2012 20:52
von Delle
Hallo,
hat hier jemand schon mal einen RSS-Reader programmiert oder es versucht?
Meine sowas hier:
http://www.spiegel.de/thema/startup_pio ... /index.rss
Wären dafür nicht die XML-Funktione von PB geeignet?
Danke,
Delle
Re: RSS-Reader mit PB-XML-Funktionen?
Verfasst: 18.05.2012 22:51
von Kiffi
Delle hat geschrieben:Wären dafür nicht die XML-Funktione von PB geeignet?
ich weiß nicht...
Code: Alles auswählen
EnableExplicit
InitNetwork()
Define XML
Define ItemNode, ItemCounter
If ReceiveHTTPFile("http://www.spiegel.de/thema/startup_pioniere_2012/index.rss", GetTemporaryDirectory() + "index.rss")
XML = LoadXML(#PB_Any, GetTemporaryDirectory() + "index.rss")
If XML
ItemCounter = 1
Repeat
ItemNode = XMLNodeFromPath(RootXMLNode(XML), "rss/channel/item[" + Str(ItemCounter) + "]")
If ItemNode = 0
Break
EndIf
ItemCounter + 1
Debug "Titel:"
Debug GetXMLNodeText(XMLNodeFromPath(ItemNode, "title"))
Debug "Beschreibung:"
Debug GetXMLNodeText(XMLNodeFromPath(ItemNode, "description"))
Debug "-------------"
ForEver
FreeXML(XML)
EndIf
DeleteFile(GetTemporaryDirectory() + "index.rss")
EndIf
Grüße ... Kiffi
Re: RSS-Reader mit PB-XML-Funktionen?
Verfasst: 18.05.2012 23:01
von Delle
Kiffi hat geschrieben:Delle hat geschrieben:Wären dafür nicht die XML-Funktione von PB geeignet?
ich weiß nicht...
Doch Du weißt!

Re: RSS-Reader mit PB-XML-Funktionen?
Verfasst: 21.05.2012 15:44
von Darky
Ich hab vor Jahren mal einen Newsreader und einen Newsticker geschrieben damals hatte Purebasic noch keine Nativen XML Befehle
Wenn du interesse hast lade ich die dinge die Tage wieder hoch weil der alte Webspace nicht so funzt ...
Hier die Links zu den Threads
Newsreader :
http://forums.purebasic.com/german/view ... 87e555e3c4
Deskticker :
http://forums.purebasic.com/german/view ... 87e555e3c4
Wie gesagt sind nur die Threads kann die sachen gerne neu hochladen
Gruß Darky
Re: RSS-Reader mit PB-XML-Funktionen?
Verfasst: 02.07.2012 20:33
von pws32
Hallo,
wäre schön wenn Du Deinen Newsreader und Newsticker wieder irgendwo hochladen könntest wäre sehr interessiert
Gruss PWS
Re: RSS-Reader mit PB-XML-Funktionen?
Verfasst: 03.07.2012 22:43
von Darky
Sehr gerne

... schreibe dir die Tage die URLs

Re: RSS-Reader mit PB-XML-Funktionen?
Verfasst: 19.12.2024 16:44
von Delle
So ich hol es mal wieder aus der Versenkung
Das Script zeigt für einige RSS-Feeds nicht die "description" an, weil der Text darin nochmals in ein CDATA gepackt ist:
https://www.data2type.de/xml-xslt-xslfo ... abschnitte
Wie kommt man trotzdem an die Beschreibung ran?
Wenn GetXMLNodeText(XMLNodeFromPath(ItemNode, "description")) = LEER dann versuche das CDATA-Array?
Wie muss das dann aussehen? Debug GetXMLNodeText(XMLNodeFromPath(ItemNode, "description[CDATA]")) oder so?
Danke!
Re: RSS-Reader mit PB-XML-Funktionen?
Verfasst: 19.12.2024 17:26
von TroaX
Warum ist die Description in einem CDATA Block? Kommt mir irgendwie nicht valide vor.
Re: RSS-Reader mit PB-XML-Funktionen?
Verfasst: 19.12.2024 18:30
von Delle
TroaX hat geschrieben: 19.12.2024 17:26
Warum ist die Description in einem CDATA Block? Kommt mir irgendwie nicht valide vor.
Es scheint aber "valide" zu sein, vermutlich damit die jeweiligen Feeds vorher die HTML-Tags aus ihre Kurzbeschreibungen nicht entfernen müssen #faulheit
Beispiel:
https://maschinist.blog/feed/
"CDATA stands for Character Data and it means that the data in between these strings includes data that could be interpreted as XML markup, but should not be."
Die PB-Debug-Funktion zeigt es anscheinend einfach nicht an, auch wenn es vorhanden ist...
PHP-Erklärung dazu:
You are probably being misled into thinking that the CDATA is missing by using print_r or one of the other "normal" PHP debugging functions. These cannot see the full content of a SimpleXML object, as it is not a "real" PHP object.
If you run echo $nodes[0]->Description, you'll find your CDATA comes out fine. What's happening is that PHP knows that echo expects a string, so asks SimpleXML for one; SimpleXML responds with all the string content, including CDATA.
To get at the full string content reliably, simply tell PHP that what you want is a string using the (string) cast operator, e.g. $description = (string)$nodes[0]->Description.
Wie kann man das für PB ummodeln?
Re: RSS-Reader mit PB-XML-Funktionen?
Verfasst: 19.12.2024 19:25
von Andesdaf
Die PB-XML-Funktionen unterstützen CDATA. Ich habe damit noch nicht gearbeitet, aber wenn ich es recht verstehe, dann kannst du ausgehend vom description-Node noch einmal ChildXMLNode() aufrufen und erhältst dann einen Node vom Typ #PB_XML_CData. Dessen Inhalt kannst du dann mit GetXMLNodeText() beziehen.