一、使用最原始的javax.xml.parsers,标准的jdk api
// 字符串转XML
- String 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后程式变得更简单
- // 字符串转XML
- String xmlStr = "......";
- Document document = DocumentHelper.parseText(xmlStr);
- // XML转字符串
- Document document = ...;
- String text = document.asXML();
- 这里的XML DOCUMENT为org.dom4j.Document
三、使用JDOM
JDOM的处理方式和第一种方法处理很类似
- //字符串转XML
- String 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中的处理
- //字符串转XML
- var 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
string 转化xml xml转化为string