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?
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.
> 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