Ho notato che il XML::RSS::Parser non è stato aggiornato dal 2005. Questa è ancora la libreria consigliata per l'analisi di RSS o Atom? C'è uno migliore o un modo migliore?Qual è la migliore libreria per analizzare RSS/Atom in Perl?
risposta
Non sono sicuro che sia mai stata la "libreria consigliata". Se so quale tipo di feed devo analizzare, io uso XML::RSS o XML::Atom come appropriato, ma se (come è più probabile) so solo che si tratta di un feed Web, io uso XML::Feed.
Aggiunta di un esempio di utilizzo di XML :: feed come richiesto ..
use XML::Feed;
my $feed = XML::Feed->parse(\$string_containing_feed);
foreach ($feed->entries) {
print $_->title, "\n";
print $_->content->body, "\n";
}
Questo è tutto praticamente copiato dalla documentazione del modulo.
Se XML :: RSS :: Parser funziona per te, quindi utilizzarlo. Ho usato XML :: Parser per gestire gli RSS ma avevo requisiti ristretti e XML :: Parser era già installato.
Solo perché qualcosa è stato aggiornato in pochi anni non significa che non funzioni più; Non penso che le varie specifiche RSS/Atom siano cambiate di recente, quindi non c'è bisogno che il parser cambi.
In realtà oggi mi piace evitare i parser XML specifici del dominio e utilizzare XPath per tutto. In questo modo devo solo ricordare una API. (A meno che non si tratta di un enorme XML, quindi userò un parser basato su eventi come XML::Parser.)
Quindi, utilizzando XML::XPath, posso prendere un mucchio di roba da un file RSS in questo modo:
my $rss = get_rss();
my $xp = XML::XPath->new(xml => $rss);
my $stories = $xp->find('/rss/channel/item');
foreach my $story($stories->get_nodelist) {
my $url = $xp->find('link', $story)->string_value;
my $title = $xp->find('title', $story)->string_value;
...
}
Non è il codice più carino del mondo, ma funziona.
C'è anche un modulo molto bello chiamato XML::FeedPP
(vedere http://search.cpan.org/dist/XML-FeedPP/lib/XML/FeedPP.pm). FeedPP
non è così veloce ma è scritto in Perl quasi puro e ha dipendenze minimaliste.
Ho avuto anche abbastanza fortuna con questo. – Marcus
- 1. Qual è la migliore libreria OAuth2 C#?
- 2. Qual è il modo migliore per analizzare questo in C++?
- 3. Qual è la migliore libreria per gestire un Wiimote?
- 4. Qual è la migliore pratica per quanto riguarda l'uso di perl-isms (espressioni idiomatiche) in Perl?
- 5. Qual è il modo migliore per analizzare una risposta JSON dalla libreria delle richieste?
- 6. Qual è la migliore libreria Diff in Ruby?
- 7. Qual è il modo migliore per analizzare le stringhe?
- 8. Qual è lo strumento migliore per analizzare i file di registro?
- 9. qual è il modo migliore per analizzare la risposta xml in AJAX
- 10. Qual è il modo migliore per analizzare feed RSS/Atom per un'applicazione iPhone?
- 11. Qual è l'approccio migliore per la registrazione?
- 12. Qual è il modo migliore per gestire la matematica del tempo in Perl?
- 13. La migliore libreria di archiviazione per iOS
- 14. Qual è la migliore libreria per l'acquisizione video in Python su Linux?
- 15. Qual è la migliore libreria di gestione dei lavori in background per Rails?
- 16. Qual è la migliore libreria/plug-in per lo styling degli elementi form (jQuery)?
- 17. Qual è la scelta migliore per la libreria di pool di connessioni al database? (Problema c3p0)
- 18. IDE migliore per Perl 5
- 19. Qual è la migliore API/libreria per Java per utilizzare Cassandra?
- 20. Qual è il modo migliore per analizzare una data millisecondo in C++ 11
- 21. Qual è la migliore pratica per scoprire tutte le superclassi di una classe Perl?
- 22. Qual è il modo migliore per analizzare numeri localizzati da .NET/Razor in javascript?
- 23. Qual è il modo migliore per analizzare Paypal NVP in PHP?
- 24. Qual è l'approccio migliore per utilizzare JasperReports?
- 25. In C#, qual è il modo migliore per analizzare questo valore da una stringa?
- 26. Qual è il modo migliore per copiare in profondità un hash di hash in Perl?
- 27. Libreria Python per analizzare la regex in AST?
- 28. Qual è il modo migliore per analizzare il formato JSON in iOS Swift?
- 29. Perl: analizzare la stringa esadecimale codificata in array con regex
- 30. Qual è la libreria di template preferita per jQuery?
ti dispiacerebbe mostrare uno snippet per stampare il titolo e il contenuto di un post di blog con XML :: Feed? – xenoterracide
Aggiunto un esempio alla mia risposta. –