2011-08-26 7 views
0

J'ai besoin d'analyser plusieurs pages HTML (lire environ 1600) et de sortir le contenu de la balise suivante de chaque fichier.Analyse XML/HTML malformée

 
    textarea name="line" cols="66" rows="5" class="textbox" id="line" style="font-size:12px;" onkeydown="textCounter()" onkeyup="textCounter(); storeCaret(this);" onselect="storeCaret(this);" onclick="storeCaret(this);">TEXT I WANT IS HERE 

(c'est en fait censé être une balise textarea html) Je pensais que je pouvais utiliser un DomParser mais les fichiers contiennent trop d'erreurs, et je suis tombé sur JTidy, d'une autre question ici sur stackoverflow, et j'ai essayé d'utiliser cela ...

Mais cela ne semble pas être capable de convertir le html de l'une des pages en XHTML afin que je puisse alors utiliser un analyseur DOM.

alors que je pensais que je pouvais utiliser regex, mais je ne pourrais pas trouver tout à fait l'expression particulière nécessaire pour tirer ce texte, et aussi je suis tombé sur plusieurs questions/réponses qui dit de ne pas utiliser regex pour analyser HTML ...

Donc, essentiellement, ma question est là toute autre approche à prendre afin d'obtenir le texte dont j'ai besoin d'un format html mal formé?

Répondre

1

Vous devriez pouvoir analyser vos documents directement avec JTidy, sans avoir à les convertir en XHTML. Je l'ai fait à plusieurs reprises, accordé il y a un moment, mais cela a fonctionné pour moi bien et avec HTML assez laid.

EDIT: Une autre option que j'ai examinée, la dernière fois que j'avais besoin d'analyser des fichiers HTML, était TagSoup. Je ne pouvais pas l'utiliser dans un produit commercial en raison de sa licence GPL, mais si vous avez juste besoin de cette fonctionnalité comme outil interne, cela pourrait fonctionner pour vous

+0

A bientôt, je vais jeter un oeil à tagsoup ... –

+0

Im va accepter cela comme la réponse depuis que je pense que TagSoup est-il le chemin à parcourir, même si je n'ai pas réussi à le faire fonctionner. J'ai réussi à résoudre mon problème en revenant à l'utilisation de regex et j'ai trouvé un modèle qui fonctionne pour moi ... –