`

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

    博客分类:
  • 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 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。

分享到:
评论
1 楼 lxy19791111 2008-07-13  
老兄,总结得不错,正在找这方面的资料呢...

相关推荐

    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