2011-01-19 3 views
1

Je suis à la recherche d'un analyseur html basé sur Java qui peut rechercher et remplacer les balises html de préservation de texte. Cette question a déjà été posée ici mais les réponses semblent ne pas atteindre la cible. Il y a peu de parseurs html que j'ai téléchargés et écrits des programmes simples pour voir s'ils peuvent faire le travail. Ceux-ci incluent jsoup, Jericho, analyseur HTML de Java etc. Ceux-ci peuvent faire une recherche mais quand il vient à remplacer le texte préservant des balises html, il n'y a aucun moyen de le faire.html rechercher et remplacer les balises html de préservation

J'ai lu le fil complet pour ces postes:

How to find/replace text in html while preserving html tags/structure

html search and replace on server side

S'il n'y a pas un tel analyseur existe aujourd'hui, quelle est la meilleure façon de mettre en œuvre un? Si vous avez déjà fait quelque chose comme ça, pouvez-vous partager le code?

+0

On dirait que vous avez manqué ce point important http://stackoverflow.com/questions/1856014/how-to-find- replace-text-in-html-while-preserve-html-tags-structure/1856634 # 1856634 Qu'avez-vous répondu? N'est-ce pas une raison pour laquelle vous ne pouvez pas trouver "bon" parseur? – Osw

+0

J'espère que vous faites référence à la réponse d'Akaihola. Il y a un problème avec l'étape 3 - il suppose que la chaîne est trouvée à la position 1, 2 comme le montre les étapes: L'expression rationnelle nécessaire dans 3. est # (\ d +), pile \ s + # (\ d +); et le remplacement # \ 1; stack% \ 2; underflow – user576249

+0

Avez-vous trouvé une solution ou comment avez-vous fait cela. Partagez s'il vous plait. – Sourabh

Répondre

0

Le parseur de Jéricho pourrait vous aider. A été autour pour toujours et travaille avec HTML mal formé. http://jericho.htmlparser.net/docs/index.html

+0

Merci, mais jericho ne peut remplacer que dans une balise de début et une balise de fin. Nous pouvons le faire sans analyseurs html en faisant simplement une recherche de texte et de remplacer. – user576249

1

L'analyseur Caja utilise libhtmlparser, un analyseur HTML5 qui traite bien avec la soupe de tags XML contenant des sous-arbres intégrés produisant un org.w3c.dom.DocumentFragment, et a un produit qui renderer bien formé HTML.

Le code de l'analyseur est à http://code.google.com/p/google-caja/source/browse/trunk/src/com/google/caja/parser/html/DomParser.java

Le code est à renderer http://code.google.com/p/google-caja/source/browse/trunk/src/com/google/caja/parser/html/Nodes.java

Questions connexes