xml类型的String转换成已经格式化的String

来源:互联网 发布:网络机房的重要性 编辑:程序博客网 时间:2024/05/17 23:43

现为了日志打印出来,可以清晰的看到

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 "";    }
原创粉丝点击