Java格式化XML输出
2014-07-10 22:23
190 查看
Java格式化输出XML,范例已清晰演示两接口使用。
import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.StringReader; import java.io.UnsupportedEncodingException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.DOMConfiguration; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.bootstrap.DOMImplementationRegistry; import org.w3c.dom.ls.DOMImplementationLS; import org.w3c.dom.ls.LSOutput; import org.w3c.dom.ls.LSSerializer; import org.xml.sax.InputSource; public class XmlUtils { /** * @param args */ public static void main(String[] args) { byte[] data = outPut("<node><content>test</content><anotherNode/></node>"); if (data != null) { try { System.out.println(new String(data, "UTF-8")); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /** * 格式化XML输出. * @param xmlStr xml文本内容. * @return */ public static byte[] outPut(String xmlStr) { byte[] data = null; StringReader stringReader = null; try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); stringReader = new StringReader(xmlStr); InputSource is = new InputSource(stringReader); Document doc = db.parse(is); data = outPut(doc); } catch (Exception e) { e.printStackTrace(); } finally { if (stringReader != null) { stringReader.close(); } } return data; } /** * 格式化输出. * @param node * @return */ public static byte[] outPut(Node node) { ByteArrayOutputStream byteArrayOutputStream = null; byte[] data = null; try { DOMImplementationRegistry registry = DOMImplementationRegistry.newInstance(); DOMImplementationLS impl = (DOMImplementationLS) registry.getDOMImplementation("XML 3.0"); LSSerializer serializer = impl.createLSSerializer(); DOMConfiguration domConfiguration = serializer.getDomConfig(); boolean isSupport = domConfiguration.canSetParameter("format-pretty-print", true); if (isSupport) { domConfiguration.setParameter("format-pretty-print", true); } LSOutput output = impl.createLSOutput(); output.setEncoding("UTF-8"); byteArrayOutputStream = new ByteArrayOutputStream(); output.setByteStream(byteArrayOutputStream); serializer.write(node, output); data = byteArrayOutputStream.toByteArray(); } catch (Exception e) { e.printStackTrace(); } finally { if (byteArrayOutputStream != null) { try { byteArrayOutputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } return data; } }
相关文章推荐
- java xml格式化输出
- Java格式化XML输出
- Java中使用代理访问网络&格式化输出xml
- java xml 格式化输出
- 一个用Jdom输出XML的java程序
- 用dom4j建立,修改XML文档,并解决格式化输出和中文问题
- JAVA中格式化输出整数问题~
- java中格式化输出数字
- XML格式化输出到文件
- 用dom4j建立,修改XML文档,并解决格式化输出和中文问题
- dom4j建立,修改XML文档,并解决格式化输出和中文
- XSLT如何实现xml的格式化输出
- Java 小例子:输出格式化数字
- JAVA下的日期时间类和格式化输出
- JAVA中使用printf(System.out.printf)如何格式化输出数字
- java读取数据库字段和值,输出到regedit,xml,text,excel,pdf的程序
- java中格式化输出数字
- XML格式化(缩进)输出的方法
- 用dom4j建立,修改XML文档,并解决格式化输出和中文问题
- java.text.DecimalFormat()格式化输出数字