2010-12-30 16 views
33

Xml dosyam var. Okumalı, bazı değişiklikler yapmalı ve yeni bir hedefe yeni değiştirilmiş bir versiyon yazmalıyım.Xml dosyasında ayrıştırılan ve değiştirilen DOM belgesi nasıl kaydedilir?

Bu dosyayı okuyup, ayrıştırmayı ve yamalamayı başardım (DocumentBuilderFactory, DocumentBuilder, Document vb. Ile).

Ancak bu dosyayı kaydetmenin bir yolunu bulamıyorum. Düz metin görünümü (String olarak) veya daha iyi bir yolu almak için bir yolu var mı? Böyle

cevap

58

şey çalışır: sağlanan çalışacaktır

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

transformer.transform(input, output); 
2

Eğer xerces-j kullanıyorsanız:

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

size xml biçimi

new XMLWriter(new FileOutputStream(fileName), 
       new OutputFormat(){{ 
         setEncoding("UTF-8"); 
         setIndent(" "); 
         setTrimText(false); 
         setNewlines(true); 
         setPadText(true); 
       }}).write(document); 
tanımlamak imkanı verecektir Yani
İlgili konular