Java对XML的操作手册

本文通过几个简单例子演示各方法生成、解析XML的过程。

1.Dom4j

  用Java代码生成xml文档。

 1 package com.example.xml.dom4j;
 2
 3 import java.io.FileOutputStream;
 4 import java.io.FileWriter;
 5
 6 import org.dom4j.Document;
 7 import org.dom4j.DocumentHelper;
 8 import org.dom4j.Element;
 9 import org.dom4j.io.OutputFormat;
10 import org.dom4j.io.XMLWriter;
11
12 /**
13  * dom4j框架学习 使用dom4j框架创建xml文档并输出保存
14  *
15  */
16 public class Dom4JTest1
17 {
19     public static void main(String[] args) throws Exception
20     {
21         // 第一种方式:创建文档,并创建根元素
22         // 创建文档:使用了一个Helper类
23         Document document = DocumentHelper.createDocument();
24
25         // 创建根节点并添加进文档
26         Element root = DocumentHelper.createElement("student");
27         document.setRootElement(root);
28
29         // 第二种方式:创建文档并设置文档的根元素节点
30         Element root2 = DocumentHelper.createElement("student");
31         Document document2 = DocumentHelper.createDocument(root2);
32
33         // 添加属性
34         root2.addAttribute("name", "zhangsan");
35         // 添加子节点:add之后就返回这个元素
36         Element helloElement = root2.addElement("hello");
37         Element worldElement = root2.addElement("world");
38
39         helloElement.setText("hello Text");
40         worldElement.setText("world text");
41
42         // 输出
43         // 输出到控制台
44         XMLWriter xmlWriter = new XMLWriter();
45         xmlWriter.write(document);
46
47         // 输出到文件
48         // 格式
49         OutputFormat format = new OutputFormat("    ", true);// 设置缩进为4个空格,并且另起一行为true
50         XMLWriter xmlWriter2 = new XMLWriter(
51                 new FileOutputStream("student.xml"), format);
52         xmlWriter2.write(document2);
53
54         // 另一种输出方式,记得要调用flush()方法,否则输出的文件中显示空白
55         XMLWriter xmlWriter3 = new XMLWriter(new FileWriter("student2.xml"),
56                 format);
57         xmlWriter3.write(document2);
58         xmlWriter3.flush();
59         // close()方法也可以
61     }
62 }

  读入xml文档并分析

 1 <?xml version="1.0" encoding="UTF-8"?>
 2
 3 <students name="zhangsan">
 4     <hello name="lisi">hello Text1</hello>
 5     <hello name="lisi2">hello Text2</hello>
 6     <hello name="lisi3">hello Text3</hello>
 7     <world name="wangwu">world text1</world>
 8     <world name="wangwu2">world text2</world>
 9     <world >world text3</world>
10 </students>
 1 package com.example.xml.dom4j;
 2
 3 import java.io.File;
 4 import java.util.Iterator;
 5 import java.util.List;
 6
 7 import javax.xml.parsers.DocumentBuilder;
 8 import javax.xml.parsers.DocumentBuilderFactory;
 9
10 import org.dom4j.Document;
11 import org.dom4j.Element;
12 import org.dom4j.io.DOMReader;
13 import org.dom4j.io.SAXReader;
14
15 /**
16  * dom4j框架学习: 读取并解析xml
17  *
18  *
19  */
20 public class Dom4JTest2
21 {
22     public static void main(String[] args) throws Exception
23     {
24         SAXReader saxReader = new SAXReader();
25
26         Document document = saxReader.read(new File("students.xml"));
27
28         // 获取根元素
29         Element root = document.getRootElement();
30         System.out.println("Root: " + root.getName());
31
32         // 获取所有子元素
33         List<Element> childList = root.elements();
34         System.out.println("total child count: " + childList.size());
35
36         // 获取特定名称的子元素
37         List<Element> childList2 = root.elements("hello");
38         System.out.println("hello child: " + childList2.size());
39
40         // 获取名字为指定名称的第一个子元素
41         Element firstWorldElement = root.element("world");
42         // 输出其属性
43         System.out.println("first World Attr: "
44                 + firstWorldElement.attribute(0).getName() + "="
45                 + firstWorldElement.attributeValue("name"));
46
47         System.out.println("迭代输出-----------------------");
48         // 迭代输出
49         for (Iterator iter = root.elementIterator(); iter.hasNext();)
50         {
51             Element e = (Element) iter.next();
52             System.out.println(e.attributeValue("name"));
53
54         }
55
56         System.out.println("用DOMReader-----------------------");
57         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
58         DocumentBuilder db = dbf.newDocumentBuilder();
59         // 注意要用完整类名
60         org.w3c.dom.Document document2 = db.parse(new File("students.xml "));
61
62         DOMReader domReader = new DOMReader();
63
64         // 将JAXP的Document转换为dom4j的Document
65         Document document3 = domReader.read(document2);
66
67         Element rootElement = document3.getRootElement();
68
69         System.out.println("Root: " + rootElement.getName());
70
71     }
72
73 }
时间: 2024-08-17 22:44:44

Java对XML的操作手册的相关文章

基于Java的XML文件模拟数据库进行增删改查操作

我们知道XML文件既可以用来进行数据的传输,也可以配合DTD约束文件用来作为配置文件,当然其本质就是一个加了标签以及众多空格保持格式的字符串,那么就可以用Java进行操作. 本例是使用MyEclipse带入DOM4j解析时要用的jar包的基础上做的:当然DOM4j相对于DOM SAX 等解析方式的方便程度是不言而喻的. 下面是本次用例XML文件 <?xml version="1.0" encoding="UTF-8"?> <persons> 

java中XML操作:xml与string互转、读取XML文档节点及对XML节点增删改查

一.XML和String互转: 使用dom4j程式变得很简单 //字符串转XML String xmlStr = \"......\"; Document document = DocumentHelper.parseText(xmlStr); // XML转字符串 Document document = ...; String text = document.asXML(); //这里的XML DOCUMENT为org.dom4j.Document 二.读取XML文档节点: pack

Jenkins+maven+svn+tomcat操作手册(三)

上接:Jenkins+maven+svn+tomcat操作手册(二) 部署完成之后,我们来进行测试 1.5 测试 注意:在构建之前要启动tomcat,因为jenkins需要通过网络访问tomcat,然后把war文件自动部署到tomcat的webapps目录下. 下面开始构建,可以等着自动去build,也可以手工去触发一次,手工触发如下图所示的操作: 构建完成之后,点击Name下边的连接: 然后点击Console Output可以查看控制台输出的日志,查看报错的原因: 通过错误原因,我们可以知道,

【收藏用】--切勿转载Java处理XML的三种主流技术及介绍

原帖地址 : http://www.ibm.com/developerworks/cn/xml/dm-1208gub/ XML (eXtensible Markup Language) 意为可扩展标记语言,它已经是软件开发行业中大多数程序员和厂商用以选择作为数据传输的载体.本文作者对于 Java 处理 XML 的几种主流技术进行一些总结和介绍,希望帮助那些有不同需求的开发人员对于 XML 处理技术的作出最优的选择. 最初,XML 语言仅仅是意图用来作为 HTML 语言的替代品而出现的,但是随着该

java书籍推荐:《Java SE 6 技術手册》

Java SE 6 技術手册 或  Java SE 6 技術手册 Java SE 6 技術手册 為什麼選擇用 Markdown?仅仅是單純把文件又一次排版太無聊了,不如趁這個機會學些新東西.所以我就藉這個機會來學著用 Markdown,並看看它有什麼好處與壞處 ... 假设你须要 PDF 與 epub 格式.而又有點懶自己轉換,那麼能够考慮在 Google Play 或 Pubu 上向便當價致敬,假设你须要 mobi 格式,能够使用 calibre 把 epub 轉為 mobi ... :) 我

Java获取XML节点总结之读取XML文档节点

dom4j是Java的XML API,用来读写XML文件的.目前有很多场景中使用dom4j来读写xml的.要使用dom4j开发,需要下载导入dom4j相应的jar文件.官网下载:http://www.dom4j.org/dom4j-1.6.1/github下载:http://dom4j.github.io/下载解压之后如图所示: 我们只需要把dom4j-1.6.1.jar文件构建到我们开发项目中就可以了. 下面就以Eclipse创建java项目的构建方法为例说明:声明:本Java项目的开发环境J

java解析xml汇总

转载于http://www.cnblogs.com/jiugehuanying/archive/2012/01/12/2320058.html [目录] 一.[基础知识——扫盲] 二.[DOM.SAX.JDOM.DOM4j简单使用介绍] 三.[性能测试] 四.[对比] 五.[小插曲XPath] 六.[补充] 关键字:Java解析xml.解析xml四种方法.DOM.SAX.JDOM.DOM4j.XPath [引言] 目前在Java中用于解析XML的技术很多,主流的有DOM.SAX.JDOM.DOM

Java解析XML之Dom4j

Java解析XML文件的方法有多种,个人感觉最常用的是使用Dom4j来解析XML文件.下面就简单介绍下Dom4j的基础使用. Dom4j需要jar包的支持,大家可以从网络上下载,如dom4j-1.6.1.jar: 下载好JAR包以后,只要导入我们的工程就可以使用了,Java WEB工程导入路径为:WebRoot/WEB-INF/lib目录下: 代码示例: 一.查看xml文档基础操作(以封装方法展示): public static void run() throws Exception { //获

Java 处理 XML 的三种主流技术及介绍

简介: XML (eXtensible Markup Language) 意为可扩展标记语言,它已经是软件开发行业中大多数程序员和厂商用以选择作为数据传输的载体.本文作者对于 Java 处理 XML 的几种主流技术进行一些总结和介绍,希望帮助那些有不同需求的开发人员对于 XML 处理技术的作出最优的选择. 最初,XML 语言仅仅是意图用来作为 HTML 语言的替代品而出现的,但是随着该语言的不断发展和完善,人们越来越发现它所具有的优点:例如标记语言可扩展,严格的语法规定,可使用有意义的标记,内容