zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    修改element ui 默认样式最好的解释
    python全栈开发day92-day96 Vue总结
    跨域资源共享 CORS 详解(转自阮一峰博客)
    Vue axios 返回数据绑定到vue对象问题
    Vue爬坑之路
    input标签checkbox选中触发事件的方法
    python中super的理解(转)
    Django时区的解释
    django 视图函数返回queryset对象或日期对象至浏览器ajax接收的写法
    python全栈开发day87~91-整个流程梳理、CRM功能、知识点梳理
  • 原文地址:https://www.cnblogs.com/VicHuang/p/2706862.html
Copyright © 2011-2022 走看看