在 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

本文出自 “夜狼” 博客,请务必保留此出处http://yangfei520.blog.51cto.com/1041581/382977

转载于:https://blog.51cto.com/techzone/860519

关于XML字符串和XML Document之间的转换相关推荐

  1. c语言解析xml字符串_Python XML解析

    Python XML解析 什么是XML? XML 指可扩展标记语言(eXtensible Markup Language). 你可以通过本站学习XML教程 XML 被设计用来传输和存储数据. XML是 ...

  2. c语言解析xml字符串_Python XML解析和处理(三十二)

    XML是一种便携式的开源语言,允许程序员开发可由其他应用程序读取的应用程序,而不管操作系统和/或开发语言是什么. 1.什么是XML? 可扩展标记语言(XML)是一种非常像HTML或SGML的标记语言. ...

  3. xml字符串转xml对象,xml对象转json对象

    xml字符串转xml对象: function loadXml(str) {if (str == null) {return null;}var doc = str;try{doc = createXM ...

  4. java字符串与基本数据_java --字符串与基本数据类型之间的转换

    public static void main(String[] args) { /** * 1.字符串与基本数据类型之间的转换 * 字符串-->基本数据类型,调用xx.parseXxx(Str ...

  5. C# 16进制与字符串、字节数组之间的转换

    在串口通讯过程中,经常要用到 16进制与字符串.字节数组之间的转换 字符串转16进制字节数组  1         private static byte[] strToToHexByte(strin ...

  6. C++字符串类型和数字之间的转换

    C++字符串类型和数字之间的转换 转载:http://www.cnblogs.com/luxiaoxun/archive/2012/08/03/2621803.html 1.字符串数字之间的转换 字符 ...

  7. 【java】字符串和基本数据类型之间的转换

    字符串和基本数据类型之间的转换:程序的功能是比较两个数的大小 代码清单如下: package p1; import javax.swing.JOptionPane;public class Java_ ...

  8. js解析xml字符串或xml文件,将其转换为xml对象方法

    注:判断是否是ie浏览器和非ie浏览器的方法有多种,在此只介绍用例中的方法: 1.解析xml字符串,得到xml对象的方式: function createXml(str){if(document.al ...

  9. php 字符串转换xml,php 数组转xml字符串、xml字符串转数组方法案例

    数组转xml字符串方法:两种方法/** * 数组转xml字符串方法1 * @param  arary $data 数组数据 * @param  boolean $type 是否需要根节 */ func ...

  10. c++ cstring 转换 char_Java基本数据类型的介绍及其转换(内附字符串与多种数据之间的转换)...

    因为本篇文章长,所以先附上一个目录图片(ps:由于知乎不能设置目录所以只能先放一个图片了)如果觉得翻阅麻烦,可去小乔的CSDN查看. 一.Java的基本数据类型介绍 二.各类基本数据之间的转换 1.自 ...

最新文章

  1. 解决VirtualBox 上的XP 关机时重启 , 启动时蓝屏 ,点击电源选项蓝屏
  2. [云炬创业管理笔记]第三章测试2
  3. putty连接Linux
  4. 新书品读《三级网络技术预测试卷与考点解析》,欢迎拍砖、跟砖提建议。
  5. 简单的ASP.NET无刷新分页
  6. linux文件 run.man,【Linux】linux经常使用基本命令
  7. apache+tomcat配置
  8. ActiveRecord.JS 与 Google Gears
  9. 《零基础》MySQL 安装(二)
  10. 小乌龟git的安装、配置(TortoiseGit安装、配置)
  11. 高通工具过滤_高通QXDM|高通诊断监视工具(Qualcomm QXDM)下载v3.14 官方版 - 欧普软件下载...
  12. 1 集群Linux环境搭建
  13. Python几十行代码轻松实现微信自动回复机器人
  14. 【XGBoost】第 7 章:使用 XGBoost 发现系外行星
  15. VS用OLE方式对Excel进行读写操作
  16. API网关,网关平台API流量统一入口
  17. VISIO2016解决跨线问题
  18. 免费下载网易云上的歌曲到本地
  19. linux计划任务不执行
  20. 中信java在线笔试_2014年中信java笔试题

热门文章

  1. python字典(dictionary)中get和items、iteritems方法
  2. PHP实现Trie树(字典树)
  3. MySQL创建视图的语法格式,MySQL如何创建视图
  4. Android-Universal-Image-Loader学习笔记(二)--LruDiscCache
  5. Apache Flink 在斗鱼的应用与实践
  6. kotlin写的音视频app(已开源)
  7. 勤能补拙 VS 思考补拙
  8. Ajax及jQuery学习
  9. 计算机知识选择题库,计算机基础知识篇选择题库
  10. html新建盒子,html+css 盒子模式展示(备查)