0

JEditorPane我有一个摆动客户端,它通过使用和 HTMLDocument类来呈现 HTML 。

我遇到的问题是我希望能够将文档的一个区域定义为一些文本的容器,这些文本将在以后检索,然后用 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(结束)

所以,我猜我需要告诉文档(或者它的解析器)我的标签,但这就是我失败的地方,因为我对这个领域还很陌生。

那么,有没有人有过这方面的经验?我可以作弊并使用跨度标签,但这感觉不对,因为(为简洁起见)我还需要针对标签存储一个附加属性。

在此先感谢您的时间...

4

3 回答 3

0

看起来您需要覆盖 HTMLDocument 以返回识别自定义标签的阅读器。有关详细信息,请参阅HTMLDocument#getReader。您需要返回一个HTMLReader的子类,它理解自定义标签(通过 registerTag 方法)。

于 2009-03-11T16:42:25.120 回答
0

也许将您的详细信息设置为标签的属性?

于 2009-03-11T16:45:16.923 回答
0

http://java-sl.com/custom_tag_html_kit.html 这显示了如何添加自定义标签。您可以使用它来编写自己的标签支持。

于 2010-03-25T11:17:10.880 回答