package com.wangyin.ak47.common; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.xml.sax.SAXException; /** * org.w3c.dom.Document-related helper class * * XML相关辅助,基于org.w3c.dom * * @author hannyu * */ public class XmlUtil { /** * document(w3c.dom.Document) to string(XML Text) * * * @param document * @return * @throws TransformerException * @throws UnsupportedEncodingException */ public static String document2String(Document document) throws TransformerException, UnsupportedEncodingException{ TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource source = new DOMSource(document); ByteArrayOutputStream bos = new ByteArrayOutputStream(); StreamResult result = new StreamResult(bos); transformer.transform(source, result); return bos.toString(Ak47Constants.DEFAULT_ENCODING); } /** * string(XML Text) to document(w3c.dom.Document) * * @param string * @return * @throws ParserConfigurationException * @throws SAXException * @throws IOException */ public static Document string2Document(String string) throws ParserConfigurationException, SAXException, IOException { DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); builderFactory.setNamespaceAware(true); InputStream is = new ByteArrayInputStream(string.getBytes(Ak47Constants.DEFAULT_ENCODING)); DocumentBuilder docBuilder = builderFactory.newDocumentBuilder(); Document document = docBuilder.parse(is); return document; } }