String 和 document 的相互转换总结

来源:互联网 发布:管家婆软件单机版 编辑:程序博客网 时间:2024/05/18 01:31

一、使用最原始的javax.xml.parsers,标准的jdk api

// 字符串转XMLString xmlStr = /"....../";StringReader sr = new StringReader(xmlStr);InputSource is = new InputSource(sr);DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder builder=factory.newDocumentBuilder();Document doc = builder.parse(is);//XML转字符串TransformerFactory   tf   =   TransformerFactory.newInstance();Transformer t = tf.newTransformer();t.setOutputProperty(/"encoding/",/"GB23121/");//解决中文问题,试过用GBK不行ByteArrayOutputStream   bos   =   new   ByteArrayOutputStream();t.transform(new DOMSource(doc), new StreamResult(bos));String xmlStr = bos.toString();


这里的XML DOCUMENT为org.w3c.dom.Document

二、使用dom4j后程序变得更简单

// 字符串转XMLString xmlStr = /"....../";Document document = DocumentHelper.parseText(xmlStr);// XML转字符串 Document document = ...;String text = document.asXML();

 

这里的XML DOCUMENT为org.dom4j.Document

三、使用JDOM

JDOM的处理方式和第一种方法处理非常类似

//字符串转XMLString xmlStr = /"...../";StringReader sr = new StringReader(xmlStr);InputSource is = new InputSource(sr);Document doc = (new SAXBuilder()).build(is);//XML转字符串Format format = Format.getPrettyFormat();format.setEncoding(/"gb2312/");//设置xml文件的字符为gb2312,解决中文问题XMLOutputter xmlout = new XMLOutputter(format);ByteArrayOutputStream bo = new ByteArrayOutputStream();xmlout.output(doc,bo);String xmlStr = bo.toString();


这里的XML DOCUMENT为org.jdom.Document

四、JAVASCRIPT中的处理

//字符串转XMLvar xmlStr = /"...../";var xmlDoc = new ActiveXObject(/"Microsoft.XMLDOM/");xmlDoc.async=false;xmlDoc.loadXML(xmlStr);//可以处理这个xmlDoc了var name = xmlDoc.selectSingleNode(/"/person/name/");alert(name.text);//XML转字符串var xmlDoc = ......;var xmlStr = xmlDoc.xml


这里的XML DOCUMENT为javascript版的XMLDOM。

原创粉丝点击