码迷,mamicode.com
首页 > 编程语言 > 详细

Java对XML的操作手册

时间:2015-01-06 11:22:58      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:

本文通过几个简单例子演示各方法生成、解析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 }

 

Java对XML的操作手册

标签:

原文地址:http://www.cnblogs.com/niceToString/p/4205276.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!