Java, dom4j, Unicode und NewLine

Hallo zusammen,
in einer Applikation will ich alle GUI-Beschriftungen in eine XML-Datei auslagern, um Mehrsprachigkeit realisieren zu können.
Jetzt habe ich eine XML-Datei (encoding=utf-8) und lese die mit dem dom4j-Parser ein. Wenn ich jetzt aber in meiner XML-Datei etwas stehen habe wie „erste Zeile\nzweite Zeile“ dann wird mir dieser String z.B. in einer JOptionPane einzeilig dargestellt. Das \n wird nicht berücksichtigt und wird mit ausgegeben wie es ist. Wenn ich den Text im Sourcecode selbst angebe, wird das \n berücksichtigt und eine zweizeilige JOptionPane angezeigt. Wie bekomme ich das jetzt mit dem Zeilenumbruch in den Griff? Wenn ich in der XML-Datei anstatt des \n ein
angebe, funktioniert die Sache. Das ist aber weniger schön. Außerdem glaube ich Plattformabhängig, oder? \u000A hat ueberhaupt nicht funktioniert. Das wird ebenso ausgegeben wie \n :frowning:

Gruß
Jodus

Korrektur
So sollte das heißen:

Wenn ich in der XML-Datei anstatt des ‚\n‘ ein ‚& #10;‘ (ohne Leerzeichen) angebe, funktioniert die Sache.

Hallo,

in einer Applikation will ich alle GUI-Beschriftungen in eine
XML-Datei auslagern, um Mehrsprachigkeit realisieren zu
können.

das wäre aber mit ResourceBundles einfacher zu realisieren. Da kannst du dann auch den Zeilenumbruch per \n einfügen.

http://java.sun.com/j2se/1.4.2/docs/api/java/util/Re…

gruß
Heavy

So sollte das heißen:

Wenn ich in der XML-Datei anstatt des ‚\n‘ ein ‚& #10;‘ (ohne
Leerzeichen) angebe, funktioniert die Sache.

Ist aber nicht plattformunabhängig, also nicht pure Java :wink:

Eigentlich sind die Resourcebundles dafür da, XML ist für Informationen und nicht für formatierten Text (dieser wäre dann in einer CDATA-Sektion).

Wenn schon XML, dann muss Formatierungsinformation (wie z.B. newline) über die Grammatik (=xsd) ausgedrückt werden - bestes Beispiel XHTML.