Как я могу обработать пользовательские теги в HTMLDocument Java? - PullRequest
0 голосов
/ 11 марта 2009

У меня есть свинг-клиент, который отображает HTML с использованием классов JEditorPane и 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 (конец)

Итак, я предполагаю, что мне нужно сообщить документу (или его синтаксическому анализатору) о моем теге, но здесь я потерпел неудачу, поскольку я довольно новичок в этой области.

Так, у кого-нибудь был какой-либо опыт с этим вообще? Я мог бы обмануть и использовать тег span, но это не правильно, поскольку (за исключением краткости) мне также нужно хранить дополнительный атрибут для тега.

Заранее спасибо за ваше время ...

Ответы [ 3 ]

0 голосов
/ 11 марта 2009

возможно установить вашу деталь как атрибут вашего тега?

0 голосов
/ 25 марта 2010

http://java -sl.com / custom_tag_html_kit.html Это показывает, как добавить пользовательский тег. Вы можете использовать это, чтобы написать собственную поддержку тегов.

0 голосов
/ 11 марта 2009

Похоже, вам нужно переопределить HTMLDocument, чтобы вернуть читателя, который распознает пользовательские теги. См. HTMLDocument # getReader для получения дополнительной информации. Вам нужно будет вернуть подкласс HTMLReader , который понимает пользовательский тег (через метод registerTag).

...