• string转xml


    在做一般的XML数据交换过程中,我更乐意传递XML字符串,而不是格式化的XML Document。这就涉及到XML字符串和Xml Document的转换问题,说白了这是个很简单的问题,本文就各种XML解析器分别列举如下,以方便自己今后查阅。

     

      一、使用最原始的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 DOCUMENTorg.w3c.dom.Document

     

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

     

    // 字符串转XML

    String xmlStr = \"......\";

    Document document = DocumentHelper.parseText(xmlStr);

     

    // XML转字符串

    Document document = ...;

    String text = document.asXML();

     

    这里的XML DOCUMENTorg.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 DOCUMENTorg.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 DOCUMENTjavascript版的XMLDOM

    从百度文库下载的,未能找到原创作者:

    http://wenku.baidu.com/view/439768c508a1284ac8504347.html

  • 相关阅读:
    二维数组的查找问题
    将字符串编码成数值,求数值最大和问题(今日头条笔试题)
    链表的倒序打印
    求方程的近似解
    多边形构成问题(今日头条笔试题)
    各种语言数据类型大小
    luoguP1551 亲戚
    Codeforces 764 A-B
    Mixing Chemicals
    Day 8 of JZJX
  • 原文地址:https://www.cnblogs.com/VicHuang/p/2706862.html
Copyright © 2020-2023  润新知