Tôi đã DOM sauLàm cách nào để dừng XmlSerializer chuyển đổi ê thành & # 234; trong một thuộc tính?
<row>
<link href="Büro.txt" target="_blank">
my link
</link>
</row>
Khi tôi serialize nó vào một tập tin bằng cách sử dụng Java XmlSerializer nói ra như thế này:
<row>
<link href="B&#252;ro.txt" target="_blank">
my link
</link>
</row>
Có cách nào để kiểm soát cách XmlSerializer handle thoát trong thuộc tính? Tôi có nên làm điều này theo cách khác không?
Cập nhật
Tôi cũng nên nói rằng tôi đang sử dụng jre 1.6. Tôi đã sử dụng 1,5 jre cho đến thời gian gần đây và tôi khá chắc chắn rằng nó đã được đăng 'đúng' (ví dụ: các '&' đã không thoát)
Làm rõ
DOM được tạo lập trình. Dưới đây là một ví dụ:
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());
Giải pháp của tôi Tôi không thực sự muốn làm điều này vì nó liên quan đến một số tiền hợp lý của sự thay đổi mã và thử nghiệm nhưng tôi quyết định chuyển các dữ liệu thuộc tính thành một phần tử CDATA. Sự cố
đã giải quyết được
tránh.
Cảm ơn +1. DOM được tạo lập trình (appendChild v.v.). Tôi sẽ thêm một làm rõ cho câu hỏi. Chỉ cần phát hiện ra LSSerializier vì vậy tôi sẽ xem xét điều đó. – paul
Được rồi, xem nào. Có lẽ ai đó biết một giải pháp tốt hơn nhưng tôi nghi ngờ nó là không thể (ít nhất là trong một cách sạch) để tạo ra các tham chiếu ký tự theo cách đó bởi vì dữ liệu được xử lý như vậy chứ không phải hướng dẫn XML. Có thể sai mặc dù ... Vì cả XML và Java là Unicode nhận thức, điều này có thể không quá tệ. – musiKk