2009-03-11 12 views
0

J'ai un client swing qui rend le HTML grâce à l'utilisation des classes JEditorPane et HTMLDocument. Le problème que j'ai, c'est que je veux être en mesure de définir une zone du document comme un conteneur pour du texte qui sera récupéré à une date ultérieure, puis d'utiliser document.setInnerHTML(element, data); pour échanger le contenu de l'espace réservé avec le "vrai" contenu.Comment puis-je gérer les balises personnalisées dans un document HTML HTML?

Alors, j'ai décidé que je définirais une étiquette semblable à ceci:

<html> 
<body> 
some text <mytag id="1>placeholder</mytag> some more text 
</body> 
</html> 

Le problème se produit lorsque j'utilise document.getElement(String id) - qu'il trouve MYTAG comme un élément, mais il pense qu'il est un élément de feuille qui n'a pas contenu et donc je ne peux pas appeler .setInner() dessus. En regardant cela liste de parents d'éléments, il pense qu'il ya 3 - mon tag vient d'être interprété comme composants individuels:

mytag (début)
contenu
mytag (fin)

Alors, je suis Je devine que j'ai besoin de dire le document (ou son analyseur) à propos de mon tag, mais c'est là que je tombe à plat étant donné que je suis assez nouveau dans ce domaine.

Alors, est-ce que quelqu'un a déjà eu une expérience avec ça? Je pourrais tricher et utiliser une balise span, mais cela ne me semble pas correct car (exclu par souci de brièveté), j'ai aussi besoin de stocker un attribut supplémentaire contre l'étiquette.

Merci à l'avance pour votre temps ...

+1

Connaissez-vous quelque chose sur les DTD? http://en.wikipedia.org/wiki/Document_Type_Definition –

Répondre

0

Il semble que vous devez remplacer le HTMLDocument pour renvoyer un lecteur qui reconnaît les balises personnalisées. Voir HTMLDocument#getReader pour plus d'informations. Vous devrez retourner une sous-classe de HTMLReader qui comprend la balise personnalisée (via la méthode registerTag).

+0

sonne bien - bien que le HTMLDocument etc. soit en fait d'un fournisseur et donc j'ai de la difficulté à me procurer le lecteur. Je vais vous laisser savoir comment je m'entends! Merci, B – DaddyB

0

peut-être définir votre détail en tant qu'attribut de votre tag?