3

ノードを作成し、textContent を黒丸 (•) などの特殊文字に設定する関数があります。この関数は xsl:apply-templates で呼び出されます。ただし、出力は特殊文字をエスケープし、箇条書きが表示される代わりに、 • が結果に表示されます。いくつかの調査を行った後、ノードからのエスケープを無効にする方法が見つかりませんでした。私の論文は、作成されたノードが CDATA セクションであるということですが、どうすればそれを元に戻すことができますか?

ノードの作成に使用したコードは次のとおりです。

DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();                
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();                
Document doc = docBuilder.newDocument();
result = doc.createElement("doesntmatter");   
result.setTextContent("•");

ご協力いただきありがとうございます :)

編集:xsltのdisable-output-escapingのようなものですが、Java要素/ノードの場合はうまくいくはずです

4

1 に答える 1

4

問題は、使用しているsetTextContentが、エスケープされたバージョンを提供していることです。API にエスケープを行わせる必要があります。現在、ノードのテキスト コンテンツを文字どおりに設定しようとしています"•"- 箇条書きではありません。あなたはおそらくただ欲しい:

result.setTextContent("\u2022");

コンテンツがU+2022 (箇条書き)であることを指定します。これは 10 進数でコード ポイント 8226 です。

于 2013-08-14T20:20:25.027 に答える