我有一个swing客户端,通过使用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(结束)
所以,我猜我需要告诉文档(或它的解析器)关于我的标签,但这就是我在这个领域相当新的地方。
那么,有没有人对此有任何经验?我可以欺骗并使用span标签,但这感觉不对(为了简洁而排除)我还需要为标签存储一个额外的属性。
提前感谢您的时间......
答案 0 :(得分:0)
看起来您需要覆盖HTMLDocument以返回识别自定义标记的阅读器。有关详细信息,请参阅HTMLDocument#getReader。您需要返回一个HTMLReader的子类,它理解自定义标记(通过registerTag方法)。
答案 1 :(得分:0)
或许将您的详细信息设置为代码的属性?
答案 2 :(得分:0)
http://java-sl.com/custom_tag_html_kit.html 这显示了如何添加自定义标记。您可以使用它来编写自己的标记支持。