2010-06-30 8 views
2

Tout comme le titre le demande: existe-t-il des implémentations d'analyseur d'extraction XML dans une bibliothèque Perl? J'ai regardé XML::TokeParser, mais il a neuf ans! Je suis sûr qu'il y a quelque chose qui est fonctionnel?Implémentation de XML Pull Parser en Perl?

+2

Notez que bien que TokeParser ait neuf ans, l'analyse réelle est effectuée par XML :: Parser, qui est plutôt bien mis à jour. –

+7

Je répondrais à votre question, mais elle a déjà 3 minutes! (sérieusement, quel est le problème, est-ce buggé?) – catchmeifyoutry

Répondre

3

Check out XML::TreePuller - c'est un arbre hybride et un analyseur de traction qui est très pratique à utiliser et très rapide. Je l'ai créé pour alimenter MediaWiki :: DumpFile que vous pouvez utiliser comme un exemple réel de la façon de faire quelque chose avec lui, mais il a aussi beaucoup de documentation.

1

XML::LibXML est une bibliothèque complète de parseurs XML basée sur la bibliothèque C libxml2 - donc c'est vraiment rapide. LibXML est généralement utilisé via l'API DOM/XPath, mais il prend également en charge une API SAX et une API Pull via XML::LibXML::Reader (qui est incluse dans la distribution).

+0

Le module 'XML :: LibXML :: Reader' est incroyablement difficile à utiliser correctement. Vous devez écrire beaucoup de contrôles de bas niveau pour travailler autour de ses bizarreries (traitement de '' ' differently from ', le jeton courant après l'analyse de la '' start balise dans '' vs '' , etc). C'est fondamentalement un lexer avec une pile de noms d'éléments. – rightfold