`
xinlingwuyu
  • 浏览: 135766 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

XML字符串和XML DOCUMENT的相互转换

阅读更多

在做一般的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 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

分享到:
评论

相关推荐

    dom4j解析xml字符串

    // 下面的是通过解析xml字符串的 doc = DocumentHelper.parseText(xml); // 将字符串转为XML Element rootElt = doc.getRootElement(); // 获取根节点 System.out.println("根节点:"+ rootElt.getName()); // ...

    xml字符串转化Dataset

    DOM的类:XmlNode、Xmldocument和XmlElement等; Xpath的类:XmlNavigator;XSLT的类:XslTransform。 显示XML文件内容 用C#编程实现显示XML文件中信息的方法是使用.NET提供的标准类把XML文件内容读入一个...

    利用pugixml 转化xml为string

    利用pugixml 转化xml为string

    将XML转为JSON格式字符串

    将XML数据转化为JSON格式 ...XmlDocument doc = new XmlDocument(); //doc.LoadXml(@"<root>aaa</root>"); doc.Load(@"C:\xxx.xml"); // Convert XML to a JSON string string JSON = Converter.XmlToJSON(doc);

    字符串内特殊字符在html_javascript_xml等内使用时的转换

    但是我对它进行了测试,发现有很多错误,或者是函数过期,或者是替换字符串写错,还有对javascript的转换函数中缺少对”\”的转换.于是对其进行了修正,然后测试就成功了!比如我上面的例子,若使用该组件的话只需要: ...

    JS解析XML文件和XML字符串详解

    JS解析XML文件 [removed] loadXML = function(xmlFile){ ...var xmlDomVersions = ['MSXML.2.DOMDocument.6.0','MSXML.2.DOMDocument.3.0','Microsoft.XMLDOM']; for(var i=0;i<xmlDomVersions.length;i++){ try{ x

    做一般的XML数据交换过程中,我更乐意传递XML字符

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

    jquery解析XML字符串和XML文件的方法说明

    1、读取XML字符串:例如: 代码如下:$(document).ready(function(){ var xml = “<xml><root><record><name>liubl</name></record><record><name>chencp</name></root></xml>”;//var xml=”<table><tr...

    domino通过lotusscript解析xml

    domino通过lotusscript解析xml,支持xml文件、流及字符串,可以使用对象的方式访问创建xml,如:xmldocument.标签1.子标签3.getvalue

    JOX实现XML和JavaBean相互转化

    XML和JavaBean相互转化是一个非常有用的工作,用来读写xml的组件很多,比如dom4j, sax, JDom,Digester等,但是很多组件用起来很麻烦,今天给大家推荐一个超级简单的组件JOX, JOX是一套用户XML document和Java ...

    jquery解析xml字符串示例分享

    代码如下:[removed]$(document).ready(function() { $.ajax({ url: ‘http://www.test.net/cgi/test.xml’, dataType: ‘xml’, success: function(data){ //console.log(data); $(data).find(“channel”)....

    js字符串转换成xml对象并使用技巧解读

    在js中同样有方法可以将字符串转化为xml对象,可以使用如下函数 以下是引用片段: 代码如下: function createXml(str){ if(document.all){ var xmlDom=new ActiveXObject(“Microsoft.XMLDOM”) xmlDom.loadXML(str...

    js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)

    分别针对ie和火狐分别作了对xml文档和xml字符串的解析,所有代码都注释掉了,想看哪部分功能,去掉注释就可以了。至于在ajax环境下解析xml,其实原理是一样的,只不过放在了ajax里,还是要对返回的xml进行解析。 ...

    dom4j生成xml

    //声明xml字符串 String fileString = ""; //创建DAO对象 MachineroomDao machineroom_dao = new MachineroomDao(); Cab_equipmentDao cab_equipment_dao = new Cab_equipmentDao(); Equip_...

    VB_解析xml文件

    VB_解析xml文件,只写了读取。VB_解析xml文件,只写了读取

    js跨浏览器实现将字符串转化为xml对象的方法

    window.DOMParser && window.ActiveXObject) { var xmlDomVersions = [‘MSXML.2.DOMDocument.6.0’, ‘MSXML.2.DOMDocument.3.0’, ‘Microsoft.XMLDOM’]; for (var i = 0; i < xmlDomVersions.length; i++) { ...

    checkbox全选与全不选 xml解析导入与导出 IE下点击select的option单击事件

    function loadXMLByString(xmlString)针对两种浏览器,分别由字符串获取xmlDocument对象 function ImportXML(xmlDoc,alertString)导入XML模板文件 function ExportFile()导出模板,并命名模板 function ...

    利用XSLT把ADO记录集转换成XML

    用3种方式把我们得到的记录集转换成XML格式: 1)可以遍历整个记录集,采用XML DOM(Document Object Model),建立XML节点树;...2)第二个办法,遍历记录集,直接生成XML字符串本身; 3)第三种方法:可重用的方法。

    FireFox下XML对象转化成字符串的解决方法

    解决方法如下: 代码如下: <... <...xml转化成字符串</title> [removed][removed] [removed] $(document).ready(function () { //使fireFox也支持xmlDom.xml if (!document.all) { Node.pr

    xml入门教程/xml入门教程

    XSLT,是用于对XML进行文档格式转换,把一个XML文档转换成另一种格式的XML文档,但是其中内容是不变的。 &2.DTD(Document Type Difinition DTD文档是用于规定XML文档的结构。只有结构符合所引用的DTD文件的XML文件...

Global site tag (gtag.js) - Google Analytics