Java, dom4j: как добавить встроенный элемент (b, i, u) в середине текста
Я думал, что это достаточно важно. Я должен быть в состоянии сделать этот вид XML:
<root>
<text>I am <b>text</b>, alright?</text>
</root>
Мой вопрос прост: как я могу сделать этот встроенный элемент (b, i, u) в середине текста, используя dom4j, или я должен использовать альтернативный способ при создании такого типа встроенных элементов?
Для меня очевидно, что это не сработает:
Element e = rootelem.addElement("text");
e.addElement("b").setText("text");
Кто-нибудь? Пожалуйста, скажи мне, как... Это сводит меня с ума.:D
1 ответ
Это просто. Просто не используйте setText
,
Существует различие между "установкой текстового значения узла" (которое уничтожает весь другой контент, который будет иметь узел) и "добавлением текстового узла к узлу" (что позволяет смешивать текстовые узлы с другими типами узлов).
использование addText
для последнего.
Element text = rootelem.addElement("text");
text.addText("I am ");
text.addElement("b").addText("text");
text.addText(", alright?");
Интерфейс Element
метод addText
: Добавляет новый текстовый узел с данным текстом к этому элементу.
Как в стороне, называя элемент <text>
когда на самом деле он вообще не содержит текста (но разметка) немного неудачно. Может быть что-то вроде <html>
был бы более мудрый выбор.