0

私はこの問題を十分に考えてきました。この種の XML を実行できるはずです。

    <root>
     <text>I am <b>text</b>, alright?</text>
    </root>

私の質問は簡単です: dom4j を使用してテキストの途中でそのインライン要素 (b、i、u) をどのように行うことができますか、またはこの種のインライン要素を作成するときに別の方法を使用する必要がありますか?

これがうまくいかないことは私にとって明らかです:

    Element e = rootelem.addElement("text");
    e.addElement("b").setText("text");

誰?方法を教えてください... これは私を狂わせます。:D

4

1 に答える 1

1

それは簡単です。使用しないでくださいsetText

「ノードのテキスト値を設定する」(ノードに含まれる他のすべてのコンテンツを削除する) と「ノードにテキスト ノードを追加する (テキスト ノードを他のノード タイプと混在させる) には違いがあります。

addText後者に使用します。

Element text = rootelem.addElement("text");

text.addText("I am ");
text.addElement("b").addText("text");
text.addText(", alright?");

Interface Element、 method addText:指定されたテキストを持つ新しい Text ノードをこの要素に追加します。


余談ですが<text>、実際にはテキストがまったく含まれていない (ただしマークアップが含まれている) 要素に名前を付けるのは、少し残念です。たぶん、何かが<html>より賢明な選択になるでしょう。

于 2012-12-17T10:17:26.830 に答える