4

XMLOutputter を使用して xml ファイルを作成し、それを Android で使用します。ファイルが書き込まれるとき、文字列

<string name="sname"><u>Text</u></string>

と書かれています

<string name="sname">&lt;u&gt;Text&lt;u&gt;</string>

データベースから "<u>Text<u>" を読み取り、それを jdom Document に入れました。次に、次を使用してドキュメントを作成します

XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat());
Writer writer = new OutputStreamWriter(new FileOutputStream(file), "utf-8");
outputter.output(doc, writer);
writer.close();

エスケープを防ぎ、正確な文字列をデータベースからファイルに入れるにはどうすればよいですか? (「<」が欲しいのですが、そこにはありません&lt;

4

1 に答える 1

4

次の方法でエスケープを防ぐことができるはずです。

  • メソッドの拡張XMLOutputerとオーバーライドescapeElementEntities

    XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat()) {
            @Override
            public String escapeElementEntities(String str) {
                return str;
            }
        };
    Writer writer = new OutputStreamWriter(new FileOutputStream(file), "utf-8");
    outputter.output(doc, writer);
    writer.close();
    

ここでこれを見つけました

  • 特定の文字EscapeStrategyのエスケープを防ぐためのカスタム設定Format

どちらにしても、有効な XML を生成するように注意する必要があります。

お役に立てれば。

于 2013-03-12T11:38:28.283 に答える