博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于XML字符串和XML Document之间的转换《转》
阅读量:6633 次
发布时间:2019-06-25

本文共 2016 字,大约阅读时间需要 6 分钟。

  hot3.png

转自

在web项目中,XML作为一种重要的数据存储和传输介质,被广泛使用。XML文件,XML字符串和XML Document对象是XML存在的三种形式,XML文件无需多言,和普通的文本并无二致;倒是在做一般的XML数据交换过程中,经常要使用XML字符串和XML Document对象,因此在这两种形式之间进行转化成为了使用XML的必备技术。在所有操控XML的技术中,都提供了这两种形式XML之间的转换方法。

 

  下面我就各种XML技术对此问题的解决方法做个总结,和大家分享,也方便自己今后查阅。
 
一,使用JDOM(这是我最常使用的一种技术)
 
  1.字符串转Document对象
String xmlStr = ".....";
StringReader sr = new StringReader(xmlStr);
InputSource is = new InputSource(sr);
Document doc = ( new SAXBuilder()).build(is);
  2.Document对象转字符串
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();
注:Document为org.jdom.Document
二,使用最原始的javax.xml.parsers,标准的jdk api
 
  1.字符串转Document对象
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);
  2.Document对象转字符串
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();
注:Document为org.w3c.dom.Document
三,使用dom4j(这是最简单的方法)
 
  1.字符串转Document对象
String xmlStr = "......";
Document document = DocumentHelper.parseText(xmlStr);
  2.Document对象转字符串
Document document = ...;
String text = document.asXML();
注:Document为org.dom4j.Document
四,在JavaScript中的处理
 
1.字符串转Document对象
var xmlStr = ".....";
var xmlDoc = new ActiveXObject( "Microsoft.XMLDOM");
xmlDoc.async= false;
xmlDoc.loadXML(xmlStr);
//可以处理这个xmlDoc了
var name = xmlDoc.selectSingleNode( "/person/name");
alert(name.text);
  2.Document对象转字符串
var xmlDoc = ......;
var xmlStr = xmlDoc.xml
注:Document为javaScript版的XMLDOM

 

转载于:https://my.oschina.net/lolsi/blog/113204

你可能感兴趣的文章
html5播放mp4视频代码
查看>>
032_nginx配置文件安全下载
查看>>
Linux下tomcat修改成的80端口无法访问
查看>>
为了好好看球,学霸们用深度学习重建整个比赛3D全息图
查看>>
CentOS双机中Docker下安装Mysql并配置互为主从模式
查看>>
sql in not in 案例用 exists not exists 代替
查看>>
WEB前端资源代码:学习篇
查看>>
怎样获取Web应用程序的路径
查看>>
xcode crash 查找 EXC_BAD_ACCESS 问题根源的方法
查看>>
使用java.util.concurrent.ThreadFactory来创建线程
查看>>
中国大数据科技传播联盟在京成立
查看>>
xargs 命令
查看>>
awk——报告生成器
查看>>
oracle 体系结构
查看>>
Nginx+Keepalived搭建高可用负载均衡集群
查看>>
VS2015 正式版中为什么没有了函数前面引用提示了?
查看>>
windows 系统的安装和虚拟机共享文件夹
查看>>
arp协议的混乱引发的思考--一个实例
查看>>
Why Public Cloud is Not a Security Concern
查看>>
配置XenDesktop一例报错-序列不包含任何元素
查看>>