package com.xyls.xml;
import java.io.*;
import java.net.URI;
import java.util.*;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;
/*
需要jdom-1.1.3.jar支持
把jar文件放到D:\Java\jdk1.7.0_09\jre\lib\ext中去,即可正确完成编译
JDOM=DOM修改文件的优点+SAX读取文件的优点
主要操作类:
Document定义XML文件的各种操作,获取根元素,以及各个层次的相关信息
DOMBuilder用来建立 一个JDOM结构树
Element定义xml元素的各种操作,元素文字内容,属性值,子节点
Attribute定义属性的各个操作
XMLOutputter将JDOM结构树格式化为XML文件,以输出流的方式加以输出
测试:读取xml文件,进行部分修改操作,把修改后的文件输出到另一个xml文件中
*/
public class JdomTest{
public static void main(String args[])throws Exception{
SAXBuilder sax = new SAXBuilder();//建立SAX解析
URI uri = JdomTest.class.getClassLoader().getResource("books.xml").toURI();
File file = new File(uri);
Document doc = sax.build(new FileInputStream(file));//获得Document
//加入一条处理指令,了解即可
ProcessingInstruction pi = new ProcessingInstruction("xml-stylesheet",
"href='bookList.html.xsl' type='text/xsl'");
doc.addContent(pi);
Element root = doc.getRootElement();//得到根元素
List books = root.getChildren();//得到根元素的所有子元素集合
Element book = (Element)books.get(0);//得到第一个book元素
Attribute a = new Attribute("hot","true");
book.setAttribute(a);//为第一个book元素添加一条属性
Element author = book.getChild("author");//得到第一个book元素中的指定子元素author
author.setText("毛泽东");//将作者改为毛泽东
Element price = book.getChild("price");//同上操作
price.setText("50.0");
XMLOutputter out = new XMLOutputter();
out.setFormat(out.getFormat().setEncoding("GBK"));//设置输出编码
out.output(doc,new FileOutputStream("d:"+File.separator+"test"+
File.separator+"bookB.xml"));//把修改过的文档存入另一个文件
/*
*使用JDOM生成xml文件示例:
* Element addresslist = new Element("addresslist");//定义根节点
Element linkman = new Element("linkman");
Element name = new Element("name");
Element email = new Element("email");
Attribute id = new Attribute("id", "xyls");//定义属性
name.setText("毛泽东");//设置name元素的内容
email.setText("mzd@test.com");
name.setAttribute(id);//设置name元素的属性
linkman.addContent(name);//设置linkman子节点
linkman.addContent(email);
addresslist.addContent(linkman);//将linkman加入到根节点中
Document docu = new Document(addresslist);//声明Document对象
//可以进行输出操作,见上文*/
}
}
Java解析XML文件的四种方式之JDOM解析
最新推荐文章于 2016-01-25 10:39:53 发布