Je travaille sur une méthode qui prend une chaîne de HTML et retourne un analogue
javax.swing.text.html.HTMLDocument
3 Réponses :
Essayez d'utiliser Edit: Pour donner un exemple, je pense que cela pourrait être fait comme ceci (AFTRE Le code est exécuté, HTMELLEDITORKIT CODE> classe. Il prend en charge l'analyse du contenu HTML pouvant être lu directement à partir de chaîne code> (par exemple via stringreader code>). Il semble y avoir un article sur la façon de faire cela. HTMLDOC CODE> doit contenir le document chargé ...): P> Reader stringReader = new StringReader(string);
HTMLEditorKit htmlKit = new HTMLEditorKit();
HTMLDocument htmlDoc = (HTMLDocument) htmlKit.createDefaultDocument();
HTMLEditorKit.Parser parser = new ParserDelegator();
parser.parse(stringReader, htmlDoc.getReader(0), true);
Cela semble correct, mais ne semble pas fonctionner. Considérons ce cas d'essai: TestMakeHtmLDocument () TestMakeHtmLDocument () Exception {String finale HTML = " \ N" + " mon premier paragraphe. p> \ n "+" \ n "+" corps> \ n "+" html> "; final HTMLDOCUMUMENT HTMLDOCUMENT = myHTMLDOCumentLoader.makehtmldocument (HTML); htmldocument.dump (system.out); }
Il vide ceci:
Je suis un peu peur que cela soit dû à la faiblesse du support HTML par mon premier titre h1> \ n "+" \ n "+"
HTMELDITORKIT code>; Selon Javadoc, "Le support par défaut est fourni par cette classe, qui prend en charge la version 3.2 HTML (avec quelques extensions) et migre vers la version 4.0" - j'ai bien peur que vous n'avez besoin de gérer les étiquettes manuellement dans le rappel - Je ne sais pas si cela est meilleur que votre approche originale :(
Vous pouvez essayer d'utiliser le htmldocument.setouterhtml code> méthode. Ajoutez simplement un élément aléatoire et remplacez-le ensuite avec votre chaîne HTML. P>
N'oubliez pas que: 'Pour que cela fonctionne correctement, le document doit avoir un ensemble HTMELLEDITORKIT.PARSER. Ce sera le cas si le document a été créé à partir d'un HTMELLEDITORKIT via la méthode crééeFaultDocument. '
Accepter avec Mouser mais une petite correction
Reader stringReader = new StringReader(string); HTMLEditorKit htmlKit = new HTMLEditorKit(); HTMLDocument htmlDoc = (HTMLDocument) htmlKit.createDefaultDocument(); htmlKit.read(stringReader, htmlDoc, 0);
Cela a vraiment travaillé pour moi, la réponse sélectionnée n'a pas.