Ho il seguente DOMCome posso interrompere XmlSerializer che trasforma ê in & # 234; in un attributo?
<row>
<link href="Büro.txt" target="_blank">
my link
</link>
</row>
Quando ho serializzare in un file utilizzando il XmlSerializer Java che viene fuori in questo modo:
<row>
<link href="B&#252;ro.txt" target="_blank">
my link
</link>
</row>
Esiste un modo per controllare il modo in cui XmlSerializer maniglie fuga in attributi? Dovrei fare diversamente in questo modo?
Aggiornamento
Dovrei anche dire che sto usando JRE 1.6. Ero stato con JRE 1.5 fino a poco tempo e sono abbastanza sicuro che è stato serializzato 'correttamente' (vale a dire la '&' non era sfuggito)
Chiarimento
Il DOM è stato creato a livello di codice. Ecco un esempio:
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());
La mia soluzione non volevo veramente fare questo perché ha coinvolto una discreta quantità di cambiamento del codice e test, ma ho deciso di spostare i dati degli attributi in un elemento CDATA. Problema
risolto
evitato.
Grazie +1. Il DOM viene creato a livello di codice (appendChild etc). Aggiungerò un chiarimento alla domanda. Ho appena scoperto LSSerializier, quindi esaminerò quello. – paul
Ok, vediamo. Forse qualcun altro conosce una soluzione migliore ma sospetto che sia impossibile (almeno in modo pulito) creare riferimenti di carattere in questo modo perché i dati vengono gestiti come tali e non come istruzioni XML. Potrebbe comunque essere sbagliato ... Poiché sia XML che Java sono compatibili con Unicode, questo potrebbe non essere un problema. – musiKk