zoukankan      html  css  js  c++  java
  • Xml与String相互转换

    一、使用最原始的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。

    我驰骋天下,守你盛世繁华
  • 相关阅读:
    86. Partition List
    2. Add Two Numbers
    55. Jump Game
    70. Climbing Stairs
    53. Maximum Subarray
    64. Minimum Path Sum
    122. Best Time to Buy and Sell Stock II
    以场景为中心的产品设计方法
    那些产品经理犯过最大的错
    Axure教程:如何使用动态面板?动态面板功能详解
  • 原文地址:https://www.cnblogs.com/lotuses/p/11357840.html
Copyright © 2011-2022 走看看