现为了日志打印出来,可以清晰的看到
1.可以先转换成Document
public static Document parseDoc(String xmlString){
StringBuffer sXML = new StringBuffer();
sXML.append(xmlString);
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
Document doc = null;
try {
InputStream is = new ByteArrayInputStream(sXML.toString().getBytes(
"utf-8"));
doc = dbf.newDocumentBuilder().parse(is);
is.close();
} catch (Exception e) {
e.printStackTrace();
}
return doc;
}
2.将doc转换成一行一行输出的String
public static String print(Document document, boolean pretty)
{
final StringWriter writer = new StringWriter();
Transformer transformer;
try {
transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
transformer.setOutputProperty(OutputKeys.METHOD, "xml");
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
if (pretty) {
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
//首行缩进2位
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
}
transformer.transform(new DOMSource(document), new StreamResult(writer));
return writer.toString();
} catch (TransformerConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerFactoryConfigurationError e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}