RSS-Reader mit PB-XML-Funktionen?
RSS-Reader mit PB-XML-Funktionen?
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
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
PB 6.21 | Win 11
Re: RSS-Reader mit PB-XML-Funktionen?
ich weiß nicht...Delle hat geschrieben:Wären dafür nicht die XML-Funktione von PB geeignet?
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
a²+b²=mc²
Re: RSS-Reader mit PB-XML-Funktionen?
Doch Du weißt!Kiffi hat geschrieben:ich weiß nicht...Delle hat geschrieben:Wären dafür nicht die XML-Funktione von PB geeignet?



PB 6.21 | Win 11
Re: RSS-Reader mit PB-XML-Funktionen?
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

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?
Hallo,
wäre schön wenn Du Deinen Newsreader und Newsticker wieder irgendwo hochladen könntest wäre sehr interessiert
Gruss PWS
wäre schön wenn Du Deinen Newsreader und Newsticker wieder irgendwo hochladen könntest wäre sehr interessiert
Gruss PWS
ich weis das ich nix weis
Re: RSS-Reader mit PB-XML-Funktionen?
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!

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!
PB 6.21 | Win 11
- TroaX
- Beiträge: 684
- Registriert: 08.03.2013 14:27
- Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Linux Mint | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Linux Mint
- Wohnort: NRW
- Kontaktdaten:
Re: RSS-Reader mit PB-XML-Funktionen?
Warum ist die Description in einem CDATA Block? Kommt mir irgendwie nicht valide vor.
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Linux Mint
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: Fritz.Box 5690 Pro (Nur für Keepass-DB)
Coding: Purebasic, Spiderbasic, GDevelop, Javascript/Node
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: Fritz.Box 5690 Pro (Nur für Keepass-DB)
Coding: Purebasic, Spiderbasic, GDevelop, Javascript/Node
Re: RSS-Reader mit PB-XML-Funktionen?
Es scheint aber "valide" zu sein, vermutlich damit die jeweiligen Feeds vorher die HTML-Tags aus ihre Kurzbeschreibungen nicht entfernen müssen #faulheitTroaX hat geschrieben: 19.12.2024 17:26 Warum ist die Description in einem CDATA Block? Kommt mir irgendwie nicht valide vor.
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:
Wie kann man das für PB ummodeln?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.
PB 6.21 | Win 11
Re: RSS-Reader mit PB-XML-Funktionen?
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.
Win11 x64 | PB 6.20