Insérer du code HTML dans le Corps d'un HTMLDocument

Cela semble être une question aussi simple, mais je vais avoir une telle difficulté avec elle.

Problème:

J'ai un peu de texte à insérer dans un HTMLDocument. Ce texte parfois spécifie le code html. E. G.:

Some <br />Random <b>HTML</b>

Je suis en utilisant HTMLEditorKit.insertHTML pour l'insérer à un offset spécifié. Cela fonctionne très bien, sauf si le décalage est au début de la doc (offset = 1). Lorsque c'est le cas, le texte est inséré dans le head du document au lieu de le body.

Exemple:

editorKitInstance.insertHTML(doc, offset, "<font>"+stringToInsert+"</font>", 0, 0, HTML.Tag.FONT);

- Je utiliser l'étiquette de police j'ai donc maintenant ce que je suis insertion sera dans une police de caractères de la balise avec aucun des attributs de sorte qu'il ne sera pas l'effet de la format. J'ai besoin de savoir cela parce que le dernier paramètre, insertTag, et je ne peux pas connaître le contenu de stringToInsert jusqu'à l'exécution. Si il y a déjà du texte dans la doc (comme "1234567890") puis c'est la sortie:

<html>
  <head>

  </head>
  <body>
    <p style="margin-top: 0">
      1234567890 <font>something <br />Some <br />Random <b>HTML</b></font>
    </p>
  </body>
</html>

Toutefois, si le décalage est de 1 et le document est vide c'est le résultat:

<html>
  <head>

<font>Some <br />Random <b>HTML</b></font>
  </head>
  <body>
  </body>
</html>

Autres Notes:

  • Cela est fait sur la
    innerdocument d'un JEditorPane. Si
    il y a une meilleure façon de remplacer du texte
    dans un JEditorPane avec potentiel
    HTML je voudrais être ouverts à ces idées
    ainsi.

Toute aide serait appréciée. Merci!

OriginalL'auteur Robbie | 2010-08-12