2009-03-11 3 views
0

私はJEditorPaneHTMLDocumentクラスを使用してHTMLをレンダリングするスイングクライアントを持っています。Java HTMLDocumentでカスタムタグを処理するにはどうすればよいですか?

問題は、ドキュメントの領域を後で取得するテキストのコンテナとして定義してから、document.setInnerHTML(element, data);を使用してプレースホルダのコンテンツをスワップアウトしたいということです「本当の」内容。

だから、私は私がこれに似たタグを定義することを決めた:

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

私はdocument.getElement(String id)を使用するときに問題が発生 - それは要素としてmytagというを見つけたが、それはそれはありませんがある葉の要素だと考え私はその上で.setInner()を呼び出すことはできません。要素のその親のリストを見ると、それが3であると考えて - 私のタグは単に個々のコンポーネントとして解釈されてきた:

mytagという(開始)
コンテンツ
mytagという(終了)

だから、私は私のタグについてドキュメント(またはそのパーサー)に伝える必要があると推測しますが、それは私がこのエリアをかなり新しくしているのでフラットになっています。

だから、誰もこれについて全く経験がありませんでしたか?私は不正行為をしてスパンタグを使用することができますが、それは正しいとは感じません(簡潔さのために除外されています)。タグに対して追加の属性を保存する必要もあります。お時間を事前に

おかげで...

+1

DTDについて知っていますか? http://en.wikipedia.org/wiki/Document_Type_Definition –

答えて

0

カスタムタグを認識し、リーダーを返すためのHTMLDocumentをオーバーライドする必要があるように見えます。詳細については、HTMLDocument#getReaderを参照してください。カスタムタグを理解するHTMLReaderのサブクラスを返す必要があります(registerTagメソッドを使用)。

+0

はうまく聞こえますが、HTMLDocumentなどはすべて実際にはベンダーからのものですから、読者の手を煩わせることに困っています。私はどのように乗っているのか教えてあげるよ! ありがとう、 B – DaddyB

0

おそらくタグの属性として詳細を設定しますか?