Ein RSS-Element mit einem Doppelpunkt im Tag mit Ruby analysieren?

8

Ich versuche, die Informationen von einem RSS-Feed mit dieser Tag-Struktur zu analysieren:

%Vor%

Verwenden Sie die integrierte Ruby RSS-Bibliothek. Offensichtlich wirft item.dc:subject Fehler, aber ich kann keine Möglichkeit finden, diese Informationen herauszuholen. Gibt es eine Möglichkeit, dies zum Laufen zu bringen? Oder ist es mit einer anderen RSS-Bibliothek möglich?

    
Gordon Fontenot 23.03.2011, 21:58
quelle

3 Antworten

6

Tags mit ':' sind wirklich XML-Tags mit einem Namespace. Ich hatte nie gute Ergebnisse mit dem RSS-Modul, weil die Feed-Formate oft nicht den Spezifikationen entsprechen, was dazu führt, dass das Modul aufgibt. Ich empfehle dringend, Nokogiri zum Parsen des Feeds zu verwenden, egal ob es sich um RDF, RSS oder ATOM handelt.

Nokogiri kann XPath-Accessoren oder CSS-Accessoren verwenden und beide unterstützen Namespaces. Die letzten beiden Zeilen wären äquivalent:

%Vor%

Beim Umgang mit Namespaces müssen Sie die Deklaration dem XPath-Accessor hinzufügen:

%Vor%

Weitere Informationen finden Sie im Abschnitt "Namespaces" .

Ohne eine URL oder ein besseres Beispiel kann ich nicht mehr tun, aber das sollte dich in eine bessere Richtung weisen.

Vor ein paar Jahren schrieb ich einen großen RSS-Aggregator für meinen Job mit Nokogiri, der RDF, RSS und ATOM behandelte. Rubys RSS-Bibliothek war der Aufgabe nicht gewachsen, aber Nokogiri war großartig.

Wenn Sie Ihre eigenen nicht rollen möchten, Paul Dix Feedzirra ist ein gutes Juwel für die Verarbeitung von Feeds.

>     
the Tin Man 24.03.2011, 03:59
quelle
1

Das RSS -Modul scheint dazu in der Lage zu sein Führen Sie diese XML-Namespace-Attribute aus, zB <dc:date> wie folgt:

feed.items.each do |item| puts "Date: #{item.dc_date}" end

    
CamelBlues 19.03.2014 17:23
quelle
-1

Ich denke item['dc:subject'] könnte funktionieren.

    
Dan Fox 24.03.2011 00:13
quelle

Tags und Links