2010-12-30 20 views
33

Tôi có tệp xml. Tôi cần đọc nó, thực hiện một số thay đổi và viết phiên bản thay đổi mới cho một số điểm đến mới.Làm cách nào để lưu tài liệu DOM được phân tích cú pháp và thay đổi trong tệp xml?

Tôi đã đọc, phân tích và vá tệp này (với DocumentBuilderFactory, DocumentBuilder, Document và v.v.).

Nhưng tôi không thể tìm cách lưu tệp đó. Có cách nào để có được chế độ xem văn bản thuần túy (như String) hoặc bất kỳ cách nào tốt hơn không?

Trả lời

58

Something như thế này hoạt động:

Transformer transformer = TransformerFactory.newInstance().newTransformer(); 
Result output = new StreamResult(new File("output.xml")); 
Source input = new DOMSource(myDocument); 

transformer.transform(input, output); 
2

Điều đó sẽ làm việc, miễn là bạn đang sử dụng xerces-j:

public void serialise(org.w3c.dom.Document document) { 
    java.io.ByteArrayOutputStream data = new java.io.ByteArrayOutputStream(); 
    java.io.PrintStream ps = new java.io.PrintStream(data); 

    org.apache.xml.serialize.OutputFormat of = 
         new org.apache.xml.serialize.OutputFormat("XML", "ISO-8859-1", true); 
    of.setIndent(1); 
    of.setIndenting(true); 
    org.apache.xml.serialize.XMLSerializer serializer = 
         new org.apache.xml.serialize.XMLSerializer(ps, of); 
    // As a DOM Serializer 
    serializer.asDOMSerializer(); 
    serializer.serialize(document); 

    return data.toString(); 
} 
0

Điều đó sẽ cung cấp cho bạn khả năng để xác định định dạng xml

new XMLWriter(new FileOutputStream(fileName), 
       new OutputFormat(){{ 
         setEncoding("UTF-8"); 
         setIndent(" "); 
         setTrimText(false); 
         setNewlines(true); 
         setPadText(true); 
       }}).write(document); 
Các vấn đề liên quan