preserve xml format 2003-02-21 - By Ramesh Babu
Hi, I'm reading xml file and parsing thru' apache Xerces(xerces-1_4_3) DOMParser. I serialize the xml and I want to save into the file.
my xml, <?xml version="1.0" encoding="ISO-8859-1"?> <Root> <Property key="A" cat="door"/> </Root>
and my code,
import java.io.*; import org.w3c.dom.*; import org.apache.xml.serialize.*; import org.apache.xerces.parsers.DOMParser;
public class XmlWriter { private DOMParser domParser; private String strFileName; private Document doc; public XmlWriter(String strFileName) throws Exception { try { this.strFileName = strFileName; this.domParser = new DOMParser(); domParser.parse(strFileName); doc = domParser.getDocument(); } catch(Exception oEx) { System.out.println("\n XML Parse Error.\n" + oEx); throw oEx; } }
public String serializeXml() { StringWriter sw = new StringWriter(); OutputFormat format = new OutputFormat(); format.setIndenting(true); format.setLineWidth(0); format.setPreserveSpace(true); XMLSerializer serializer = new XMLSerializer(sw, format);
try { serializer.asDOMSerializer(); serializer.serialize(this.getDocument().getDocumentElement()); } catch (Exception ex) { System.out.println("[serializeXml()] exception while serializing" + ex); } return sw.toString(); }
public boolean writeXml(String newXml, String fileToWrite, boolean append) { try { BufferedWriter writer = new BufferedWriter( new FileWriter( fileToWrite, append ) ); writer.write(newXml); writer.flush(); writer.close(); } catch(Exception ex) { System.out.println("[writeXml()] Exception while writing" + ex); return false; } return true; }
public Document getDocument() { return(doc); }
public static void main(String[] args) { String fileName = args[0]; XmlWriter writer = null; try { writer = new XmlWriter(fileName); String newXml = writer.serializeXml(); writer.writeXml(newXml, fileName + ".test", false); } catch (Exception e) { e.printStackTrace(); } } } After executing, the file it looks like
<Property cat="door" key="A" />
Actually attributes are sorted which I don't want.
How do I preserver the old format of the xml ?
Any API I need to use ? any help ?
Thanks.
__________________________________________________ Do you Yahoo!? Yahoo! Tax Center - forms, calculators, tips, more http://taxes.yahoo.com/
--------------------------------------------------------------------- To unsubscribe, e-mail: xerces-j-user-unsubscribe@(protected) For additional commands, e-mail: xerces-j-user-help@(protected)
|
|