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

// 字符串转XML

  1. String xmlStr = \"......\";
  2. StringReader sr = new StringReader(xmlStr);
  3. InputSource is = new InputSource(sr);
  4. DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  5. DocumentBuilder builder=factory.newDocumentBuilder();
  6. Document doc = builder.parse(is);

//XML转字符串

  1. TransformerFactory  tf  =  TransformerFactory.newInstance();
  2. Transformer t = tf.newTransformer();
  3. t.setOutputProperty(\"encoding\",\"GB23121\");//解决中文问题,试过用GBK不行
  4. ByteArrayOutputStream  bos  =  new  ByteArrayOutputStream();
  5. t.transform(new DOMSource(doc), new StreamResult(bos));
  6. String xmlStr = bos.toString();

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

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

  1. // 字符串转XML
  2. String xmlStr = \"......\";
  3. Document document = DocumentHelper.parseText(xmlStr);
  4. // XML转字符串
  5. Document document = ...;
  6. String text = document.asXML();
  7. 这里的XML DOCUMENT为org.dom4j.Document

  三、使用JDOM

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

  1. //字符串转XML
  2. String xmlStr = \".....\";
  3. StringReader sr = new StringReader(xmlStr);
  4. InputSource is = new InputSource(sr);
  5. Document doc = (new SAXBuilder()).build(is);
  6. //XML转字符串
  7. Format format = Format.getPrettyFormat();
  8. format.setEncoding(\"gb2312\");//配置xml文档的字符为gb2312,解决中文问题
  9. XMLOutputter xmlout = new XMLOutputter(format);
  10. ByteArrayOutputStream bo = new ByteArrayOutputStream();
  11. xmlout.output(doc,bo);
  12. String xmlStr = bo.toString();
  13. 这里的XML DOCUMENT为org.jdom.Document

 四、JAVASCRIPT中的处理

[javascript] view
plain
copyprint?

  1. //字符串转XML
  2. var xmlStr = \".....\";
  3. var xmlDoc = new ActiveXObject(\"Microsoft.XMLDOM\");
  4. xmlDoc.async=false;
  5. xmlDoc.loadXML(xmlStr);
  6. //能够处理这个xmlDoc了
  7. var name = xmlDoc.selectSingleNode(\"/person/name\");
  8. alert(name.text);
  9. //XML转字符串
  10. var xmlDoc = ......;
  11. var xmlStr = xmlDoc.xml
  12. 这里的XML DOCUMENT为javascript版的XMLDOM     

    string 转化xml xml转化为string

05-11 15:24