2008-10-02 21 views
28

Tôi đang sử dụng org.w3cXML API để mở tệp XML hiện có. Tôi đang xóa một số nút và thay vào đó tôi sẽ thêm các nút khác.Java: Viết DOM vào một tệp XML (các vấn đề về định dạng)

Vấn đề là các nút mới được thêm vào được viết sau cái kia, không có dòng mới và không có thụt đầu dòng nào. Mặc dù tệp XML có giá trị, nhưng rất khó cho một người kiểm tra.

Có cách nào để thêm thụt đầu dòng hoặc ít nhất một dòng mới sau mỗi nút không?

+0

Nếu bạn đã đi đến câu hỏi này tìm kiếm các ví dụ mã để biết cách in XML đẹp trong Java thì hãy xem [cách in ấn đẹp mắt xml từ Java] (http://stackoverflow.com/questions/139076/how-to-pretty -print-xml-from-java) để thay thế. –

Trả lời

55

Tôi giả định rằng bạn đang sử dụng Transformer để thực hiện việc viết thực tế (đến StreamResult). Trong trường hợp đó, làm được điều này trước khi bạn gọi transform:

transformer.setOutputProperty(OutputKeys.INDENT, "yes"); 
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2"); 
+0

Rất vui khi được trợ giúp! –

+6

BTW: trong jdk mới nhất có một lỗi để giải quyết vấn đề này, bạn cần thực hiện trước: TransformerFactory tFactory = TransformerFactory.newInstance(); tFactory.setAttribute ("indent-number", 2); – Karussell

+0

Chúc mừng @Karussell đã cố gắng khắc phục các sự cố tôi gặp phải – Hayden

Các vấn đề liên quan