import org.apache.xml.serialize.OutputFormat;
import org.apache.xml.serialize.OutputFormat;
import org.apache.xml.serialize.XMLSerializer;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
</span><span style="color: #0000ff;">import</span><span style="color: #000000;"> javax.xml.parsers.DocumentBuilder;
</span><span style="color: #0000ff;">import</span><span style="color: #000000;"> javax.xml.parsers.DocumentBuilderFactory;
</span><span style="color: #0000ff;">import</span><span style="color: #000000;"> javax.xml.parsers.ParserConfigurationException;
</span><span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.IOException;
</span><span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.StringReader;
</span><span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.StringWriter;
</span><span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.Writer;
</span><span style="color: #008000;">/**</span><span style="color: #008000;">
* Created by IntelliJ IDEA.
* User: tsaowe
* Date: 11-9-1
* Time: 上午9:13
</span><span style="color: #008000;">*/</span>
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> XmlFormatter {
</span><span style="color: #0000ff;">public</span><span style="color: #000000;"> String format(String unformattedXml) {
</span><span style="color: #0000ff;">try</span><span style="color: #000000;"> {
</span><span style="color: #0000ff;">final</span> Document document =<span style="color: #000000;"> parseXmlFile(unformattedXml);
OutputFormat format </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> OutputFormat(document);
format.setLineWidth(</span>65<span style="color: #000000;">);
format.setIndenting(</span><span style="color: #0000ff;">true</span><span style="color: #000000;">);
format.setIndent(</span>2<span style="color: #000000;">);
Writer out </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> StringWriter();
XMLSerializer serializer </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> XMLSerializer(out, format);
serializer.serialize(document);
</span><span style="color: #0000ff;">return</span><span style="color: #000000;"> out.toString();
} </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (IOException e) {
</span><span style="color: #0000ff;">throw</span> <span style="color: #0000ff;">new</span><span style="color: #000000;"> RuntimeException(e);
}
}
</span><span style="color: #0000ff;">private</span><span style="color: #000000;"> Document parseXmlFile(String in) {
</span><span style="color: #0000ff;">try</span><span style="color: #000000;"> {
DocumentBuilderFactory dbf </span>=<span style="color: #000000;"> DocumentBuilderFactory.newInstance();
DocumentBuilder db </span>=<span style="color: #000000;"> dbf.newDocumentBuilder();
InputSource is </span>= <span style="color: #0000ff;">new</span> InputSource(<span style="color: #0000ff;">new</span><span style="color: #000000;"> StringReader(in));
</span><span style="color: #0000ff;">return</span><span style="color: #000000;"> db.parse(is);
} </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (ParserConfigurationException e) {
</span><span style="color: #0000ff;">throw</span> <span style="color: #0000ff;">new</span><span style="color: #000000;"> RuntimeException(e);
} </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (SAXException e) {
</span><span style="color: #0000ff;">throw</span> <span style="color: #0000ff;">new</span><span style="color: #000000;"> RuntimeException(e);
} </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (IOException e) {
</span><span style="color: #0000ff;">throw</span> <span style="color: #0000ff;">new</span><span style="color: #000000;"> RuntimeException(e);
}
}
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> main(String[] args) <span style="color: #0000ff;">throws</span><span style="color: #000000;"> Exception{
String s </span>= "<?xml version="1.0" encoding="UTF-8"?><PARAM><DBID>35</DBID><SEQUENCE>atgtca</SEQUENCE><MAXNS>10</MAXNS><MINIDENTITIES>90</MINIDENTITIES><MAXEVALUE>10</MAXEVALUE><USERNAME>admin</USERNAME><PASSWORD>111111</PASSWORD><TYPE>P</TYPE><RETURN_TYPE>2</RETURN_TYPE></PARAM>";<span style="color: #008000;">//</span><span style="color: #008000;">未格式化前的xml</span>
System.out.println(<span style="color: #0000ff;">new</span><span style="color: #000000;"> XmlFormatter().format(s));
}
}</span>