Mam następujący DOMJak zatrzymać przekształcanie XmlSerializer ê na & # 234; w atrybucie?
<row>
<link href="Büro.txt" target="_blank">
my link
</link>
</row>
Kiedy szeregować je do pliku przy użyciu Java XmlSerializer to wychodzi tak:
<row>
<link href="B&#252;ro.txt" target="_blank">
my link
</link>
</row>
Czy istnieje jakiś sposób, aby kontrolować sposób XmlSerializer uchwyty uciekające w atrybuty? Czy powinienem robić to w inny sposób?
Aktualizacja
Pragnę również powiedzieć, że używam JRE 1.6. Byłem przy użyciu jre 1,5 do niedawna i jestem pewien, że to było w odcinkach „poprawnie” (czyli „&” nie uciekł)
Wyjaśnienie
DOM tworzony jest programowo. Oto przykład:
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());
Moje rozwiązanie tak naprawdę nie chcesz tego zrobić, ponieważ zaangażowany sporo zmiany kodu i testowania ale postanowiłem przenieść dane atrybutów do elementu CDATA. Problem został wyeliminowany.
Dzięki +1. DOM jest tworzony programowo (appendChild itp.). Dodam wyjaśnienie do pytania. Właśnie odkryłem LSSerializiera, więc przyjrzę się temu. – paul
Dobra, zobaczmy. Może ktoś inny zna lepsze rozwiązanie, ale podejrzewam, że niemożliwe jest (przynajmniej w czysty sposób) tworzenie odniesień do znaków w ten sposób, ponieważ dane są traktowane jako takie, a nie instrukcje XML. Może być jednak źle ... Ponieważ zarówno XML, jak i Java są znane z Unicode, może nie być tak źle. – musiKk