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

  • 相关阅读:
    Python之异常篇 [待更新]
    python脚本工具 - 4 获取系统当前时间
    python脚本工具 - 3 目录遍历
    数字签名和数字证书到底是个神马玩意?
    CSRF攻击[转]
    Python之数据结构篇
    Python之模块篇
    Python之函数篇
    python脚本工具-2 去除扩展名后提取目录下所有文件名并保存
    python脚本工具-1 制作爬虫下载网页图片
  • 原文地址:https://www.cnblogs.com/VicHuang/p/2706862.html
Copyright © 2011-2022 走看看