У меня есть свинг-клиент, который отображает 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, но это не правильно, поскольку (за исключением краткости) мне также нужно хранить дополнительный атрибут для тега.
Заранее спасибо за ваше время ...