DOM4J方式解析、创建XML文件(实例)
来源:互联网 发布:js截取字符串的方法 编辑:程序博客网 时间:2024/05/01 21:58
问:DOM4J是什么?
Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP
问:使用DOM4J需要什么条件?
使用DOM4J方式解析XML文档,需要在工程文件中导入dom4j.jar包 下载链接
(1)示例代码:
import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.nio.charset.MalformedInputException;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;public class Dom4JResolve { public static void main(String[] args)throws IOException { String file = "file/books.xml"; Dom4JResolve dom4jResolve = new Dom4JResolve(); //1.DOM4J方式解析xml文件 try { List<Book> bookList = dom4jResolve.read(file); for(Book book : bookList){ System.out.println(book.toString()); } } catch (DocumentException e) { e.printStackTrace(); } //2.DOM4J方式创建xml文件 dom4jResolve.dom4jCreateXml(); } /** * Dom4j方式解析xml文件 * @param fileName * @return * @throws MalformedInputException * @throws DocumentException */ public List<Book> read(String fileName) throws MalformedInputException,DocumentException{ List<Book> books = new ArrayList<Book>(); Book book = new Book(); //创建SAXReader实例 SAXReader reader = new SAXReader(); //从文件读取xml Document document = reader.read(new File(fileName)); //获取root节点 Element root = document.getRootElement(); System.out.println("xml文件根节点:"+root.getName()); //方式1.枚举 for(Iterator i = root.elementIterator();i.hasNext();){ Element element = (Element) i.next(); book.setId(Integer.parseInt(element.attributeValue("id"))); book.setBookName(element.elementText("bookName")); book.setAuthor(element.elementText("author")); book.setYear(element.elementText("year")); books.add(book); book = new Book(); } return books; } /** * dom4j方式创建xml文件 */ public void dom4jCreateXml(){ //创建document文档 Document document = DocumentHelper.createDocument(); //增加根节点 Element bookstore = document.addElement("bookstore"); //增加子元素 Element book1 = bookstore.addElement("book"); Element name1 = book1.addElement("name"); Element title1 = book1.addElement("author"); Element author1 = book1.addElement("year"); Element book2 = bookstore.addElement("book"); Element name2 = book2.addElement("name"); Element title2 = book2.addElement("author"); Element author2 = book2.addElement("year"); //为子节点添加属性 book1.addAttribute("id", "1"); //为元素添加内容 name1.setText("冰与火之歌"); title1.setText("乔治马丁"); author1.setText("2004"); book2.addAttribute("id", "2"); name2.setText("格林童话"); title2.setText("格林"); author2.setText("2006"); //实例化输出格式对象 OutputFormat format = OutputFormat.createPrettyPrint(); //设置输出编码 format.setEncoding("UTF-8"); //创建需要写入的File对象 File file = new File("file/cdom4j.xml"); //生成XMLWriter对象,构造函数中的参数为需要输出的文件流和格式 XMLWriter writer; try { writer = new XMLWriter(new FileOutputStream(file), format); //开始写入,write方法中包含上面创建的Document对象 writer.write(document); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); }catch (IOException e) { e.printStackTrace(); } }}
(2)Book实体类代码:
public class Book { private int id;//id-bok private String bookName;//书名 private String author;//作者 private String year;//年份 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getBookName() { return bookName; } public void setBookName(String bookName) { this.bookName = bookName; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String getYear() { return year; } public void setYear(String year) { this.year = year; } @Override public String toString() { return this.id+"---"+this.bookName+"---"+this.author+"---"+this.year; }}
(3)创建的cdom4j.xml代码截图:
(4)用于解析的books.xml代码:
<?xml version="1.0" encoding="UTF-8"?><bookstore> <book id="1"> <bookName>冰与火之歌</bookName> <author>乔治马丁</author> <year>2004</year> </book> <book id="2"> <bookName>格林童话</bookName> <author>格林</author> <year>2006</year> </book></bookstore>
0 0
- DOM4J方式解析、创建XML文件(实例)
- dom4j创建和解析xml文件实例
- Dom4J方式创建/解析xml
- DOM4J方式创建解析XML
- dom4j解析xml文件实例
- xml文件--DOM4J方式解析xml文件
- DOM方式解析、创建XML文件(实例)
- SAX方式解析、创建XML文件(实例)
- JDOM方式解析、创建XML文件(实例)
- JAVA解析XML文件(四)---DOM4J方式解析
- Dom4J解析XML和创建XML文件
- dom4J创建xml和解析xml文件
- 实例037 使用dom4j解析XML文件
- 解析XML文件(二)----使用dom4j方式(一)
- 解析XML文件(二)----使用dom4j方式(二)
- 解析XML文件(二)----使用dom4j方式(三)
- Java之DOM4J方式解析XML文件(学习笔记)
- dom4j iterator方式解析xml文件
- 第十一周项目1-验证算法(1)-层次遍历算法的验证
- 第十一周项目1——二叉树算法验证(1) 层次遍历算法验证
- JavaScript中方法参数为URL处理办法
- 【第十一周项目1 - 二叉树算法验证(1)】
- NOIP 2014 - 提高组 寻找道路
- DOM4J方式解析、创建XML文件(实例)
- PowerSinger之Java环境配制
- 第10周项目1-二叉树算法库
- 在Android中通过Intent使用Bundle传递对象
- 深入了解UART
- nginx--rbtree使用详解
- 第11周项目1 验证算法(2)二叉树构造算法的验证
- 二分图——图的割点
- win10 开机自动启动安装进度命令框禁止加载