Y at-il un module Perl là-bas qui peut prendre mauvais HTML (comme ce qui est copié à partir de Microsoft Word) et l'analyser en HTML bien formaté? J'ai regardé HTML :: Tidy, mais il a obtenu horrible reviews on CPAN. Nous avons un module hérité personnalisé qui est essentiellement un wrapper pour la version de ligne de commande de tidy (qui semble être à peu près ce que HTML :: Tidy est), mais il écrit les fichiers sur le disque et les relit, ce qui peut être une grande performance peine. Certainement avec les puissantes capacités d'analyse syntaxique de Perl, il y a une meilleure façon de faire ça correctement?Quelle est la meilleure façon d'analyser HTML à partir d'un éditeur de texte enrichi en Perl?
2
A
Répondre
1
Deux choses:
1) Il n'y a vraiment pas une alternative à tidy, car il fait le travail pour la plupart des gens. Y a-t-il un comportement de l'outil de ligne de commande qui ne vous convient pas? Peut-être que si vous donniez un exemple de pourquoi ce n'est pas à la hauteur, nous pourrions mieux comprendre le problème.
2) En ce qui concerne la performance, vous pourriez envisager de modifier votre wrapper pour appeler open2
sur bien rangé pour éviter le disque aller-retour:
use IPC::Open2;
my $pid = open2(\*FROM_TIDY, \*TO_TIDY, '/usr/bin/tidy')
or die "couldn't open";
# give tidy our html and close the handle to tell it we're done
print(TO_TIDY $html_string);
close(TO_TIDY);
# read in the tidy html
while (<FROM_TIDY>) {
print;
}
close(FROM_TIDY);
Questions connexes
- 1. Quelle est la meilleure façon d'effacer l'écran en Perl?
- 2. Quelle est la meilleure façon d'automatiser le remplacement de texte?
- 3. Quelle est la meilleure façon de gunzip fichiers avec Perl?
- 4. quelle est la meilleure façon de marquer un texte?
- 5. Quelle est la meilleure façon de glisser la section de html en utilisant javascript?
- 6. Quelle est la meilleure façon de copier en profondeur un hachage de hachage en Perl?
- 7. Quelle est la meilleure façon de dessiner du texte sur un élément de canevas HTML?
- 8. Quelle est la meilleure façon de créer des vignettes à partir de la vidéo en PHP?
- 9. Éditeur de texte enrichi [WYSIWYG] avec pagination utilisant javascript
- 10. Gratuit RTE [éditeur de texte enrichi] aide nécessaire pour l'intégrer
- 11. Quelle est la meilleure façon d'extraire des commentaires de cellules Excel en utilisant Perl ou Ruby?
- 12. éditeur de texte Web enrichi avec saisie semi-automatique
- 13. Quelle est la meilleure façon de remplacer un fichier atomique multi-plateforme en Perl?
- 14. En C#, quelle est la meilleure façon d'enchaîner les constructeurs?
- 15. Quelle est la meilleure façon de détecter qu'Adobe Acrobat Reader est installé à partir d'un navigateur?
- 16. Quelle est la meilleure façon d'avoir stringTokenizer diviser une ligne de texte en variables prédéfinies
- 17. Quelle est la meilleure façon de commencer à utiliser Mylyn?
- 18. Dans un éditeur Eclipse RCP, quelle est la meilleure façon de gérer les champs obligatoires manquants?
- 19. Quelle est la meilleure façon de créer des lettres imprimables à partir d'une application MVC?
- 20. Quelle est la meilleure façon d'accéder à un port série à partir de VBA?
- 21. Quelle est la meilleure façon de remplacer le bouton Parcourir le fichier en HTML?
- 22. Quelle est la meilleure façon de remplacer du texte dans un fichier en utilisant C#/.NET?
- 23. Quelle est la meilleure façon d'enregistrer un RichTextFile en C#?
- 24. Quelle est la meilleure façon d'écrire [0..100] en C#?
- 25. Quelle est la meilleure façon de chiffrer un clob?
- 26. Quelle est la meilleure façon d'importer/lire des données à partir de fichiers pdf?
- 27. Quelle est la meilleure façon de découvrir tous les sous-programmes d'un module Perl?
- 28. Quelle est la meilleure façon de diviser deux objets TimeSpan?
- 29. Quelle est la meilleure façon d'interroger le nombre de lignes à partir des données de base?
- 30. Quelle est la meilleure façon d'accéder à SOAP WebServices à partir du code natif portable?
qui est susceptible de se bloquer (avec blocage bien rangé sur une écriture FROM_TIDY et le blocage de perl sur une écriture à TO_TIDY). – ysth
Non. Tidy lit tout le fichier avant de l'analyser, puis écrit le fichier entier. – bmdhacks