Ich habe die folgenden DOMWie kann ich verhindern XmlSerializer ê zu & # 234 Transformation; in einem Attribut?
<row>
<link href="Büro.txt" target="_blank">
my link
</link>
</row>
Wenn ich es in eine Datei serialisiert die Java XmlSerializer verwenden kommt es wie folgt aus:
<row>
<link href="B&#252;ro.txt" target="_blank">
my link
</link>
</row>
Gibt es eine Möglichkeit, die Art und Weise zu steuern XmlSerializer Flucht Griffe Attribute? Sollte ich das irgendwie anders machen?
aktualisieren
ich auch, dass ich bin mit 1.6 jre sagen sollte. Ich hatte mit jre 1.5 bis vor kurzem gewesen, und ich bin mir ziemlich sicher, dass es serialisiert wurde ‚richtig‘ (das heißt die ‚&‘ wurde nicht entgangen)
Klärung
Das DOM ist programmatisch erstellt. Hier ein Beispiel:
Document doc = createDocument();
Element root = doc.createElement("root");
doc.appendChild(root);
root.setAttribute("test1", "ê");
root.setAttribute("test2", "üöä");
root.appendChild(doc.createTextNode("ê"));
StringWriter sw = new StringWriter();
serializeDocument(doc, sw);
System.out.println(sw.toString());
Meine Lösung ich nicht wirklich wollte, dies zu tun, weil es eine angemessene Menge an Codeänderung beteiligt und testen, aber ich beschloß, die Attributdaten in ein CDATA Element zu bewegen. Problem
gelöst
vermieden.
Dank +1. Das DOM wird programmgesteuert erstellt (appendChild usw.). Ich werde der Frage eine Klarstellung hinzufügen. Habe gerade LSSerializier entdeckt, also schaue ich mir das an. – paul
Okay, mal sehen. Vielleicht weiß jemand anderes eine bessere Lösung, aber ich vermute, dass es unmöglich ist (zumindest sauber), Zeichenreferenzen auf diese Weise zu erstellen, weil die Daten als solche und nicht als XML-Anweisungen behandelt werden. Könnte aber falsch sein ... Da sowohl XML als auch Java Unicode-fähig sind, ist dies möglicherweise nicht so schlimm. – musiKk