使用java和dom4j解析xml
来源:互联网 发布:网络平台销售协议 编辑:程序博客网 时间:2024/06/01 10:04
虽然Java中已经有了Dom和Sax这两种标准解析方式,但其操作起来并不轻松,对于我这么一个初学者来说,其中部分代码是活生生的恶心。为此,伟大的第三方开发组开发出了Jdom和Dom4j等工具鉴于目前的趋势,我们这里来讲讲Dom4j的基本用法,不涉及递归等复杂操作。Dom4j的用法很多,官网上的示例有那么点儿晦涩,这里就不写了首先我们需要出创建一个xml文档,然后才能对其解析。
Xml文档
<?xml version="1.0" encoding="UTF-8"?><books> <book id="001"> <title>Harry Potter</title> <author>J K. Rowling</author> </book> <book id="002"> <title>Learning XML</title> <author>Erik T. Ray</author> </book></books>
用List列表的方式来解析xml
import java.io.File;import java.util.List;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class Demo { public static void main(String[] args) throws Exception { SAXReader reader = new SAXReader(); File file = new File("books.xml"); Document document = reader.read(file); Element root = document.getRootElement(); List<Element> childElements = root.elements(); for (Element child : childElements) { //未知属性名情况下 /*List<Attribute> attributeList = child.attributes(); for (Attribute attr : attributeList) { System.out.println(attr.getName() + ": " + attr.getValue()); }*/ //已知属性名情况下 System.out.println("id: " + child.attributeValue("id")); //未知子元素名情况下 /*List<Element> elementList = child.elements(); for (Element ele : elementList) { System.out.println(ele.getName() + ": " + ele.getText()); } System.out.println();*/ //已知子元素名的情况下 System.out.println("title" + child.elementText("title")); System.out.println("author" + child.elementText("author")); //这行是为了格式化美观而存在 System.out.println(); } }}
使用Iterator迭代器的方式来解析xml
import java.io.File;import java.util.Iterator;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class Demo { public static void main(String[] args) throws Exception { SAXReader reader = new SAXReader(); Document document = reader.read(new File("books.xml")); Element root = document.getRootElement(); Iterator it = root.elementIterator(); while (it.hasNext()) { Element element = (Element) it.next(); //未知属性名称情况下 /*Iterator attrIt = element.attributeIterator(); while (attrIt.hasNext()) { Attribute a = (Attribute) attrIt.next(); System.out.println(a.getValue()); }*/ //已知属性名称情况下 System.out.println("id: " + element.attributeValue("id")); //未知元素名情况下 /*Iterator eleIt = element.elementIterator(); while (eleIt.hasNext()) { Element e = (Element) eleIt.next(); System.out.println(e.getName() + ": " + e.getText()); } System.out.println();*/ //已知元素名情况下 System.out.println("title: " + element.elementText("title")); System.out.println("author: " + element.elementText("author")); System.out.println(); } }}
创建xml文档并输出到文件
import java.io.File;import java.io.FileOutputStream;import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.io.OutputFormat;import org.dom4j.io.XMLWriter;public class Demo { public static void main(String[] args) throws Exception { Document doc = DocumentHelper.createDocument(); //增加根节点 Element books = doc.addElement("books"); //增加子元素 Element book1 = books.addElement("book"); Element title1 = book1.addElement("title"); Element author1 = book1.addElement("author"); Element book2 = books.addElement("book"); Element title2 = book2.addElement("title"); Element author2 = book2.addElement("author"); //为子节点添加属性 book1.addAttribute("id", "001"); //为元素添加内容 title1.setText("Harry Potter"); author1.setText("J K. Rowling"); book2.addAttribute("id", "002"); title2.setText("Learning XML"); author2.setText("Erik T. Ray"); //实例化输出格式对象 OutputFormat format = OutputFormat.createPrettyPrint(); //设置输出编码 format.setEncoding("UTF-8"); //创建需要写入的File对象 File file = new File("D:" + File.separator + "books.xml"); //生成XMLWriter对象,构造函数中的参数为需要输出的文件流和格式 XMLWriter writer = new XMLWriter(new FileOutputStream(file), format); //开始写入,write方法中包含上面创建的Document对象 writer.write(doc); }}来自:http://m.jb51.net/article/42323.htm
1 0
- 使用java和dom4j解析xml
- java 使用 dom4j 解析 XML
- java 使用dom4j解析xml
- JAVA 使用Dom4j 解析XML
- java使用dom4j解析xml
- JAVA 使用Dom4j 解析XML
- JAVA 使用Dom4j 解析XML
- JAVA 使用Dom4j 解析XML
- java使用dom4j解析xml
- JAVA 使用Dom4j 解析XML
- JAVA 使用Dom4j 解析XML
- JAVA 使用Dom4j 解析XML
- JAVA 使用Dom4j 解析XML
- JAVA 使用Dom4j 解析XML
- JAVA 使用Dom4j 解析XML
- JAVA 使用Dom4j 解析XML
- JAVA 使用Dom4j 解析XML
- Java-创建和解析XML文件(之)使用Dom4j
- 【图解】一张图玩转H5测试
- 字符串的包含问题
- 《剑指offer》—9、变态跳台阶
- SQL 优化经验总结
- P1028 数的计算
- 使用java和dom4j解析xml
- Combination Sum II
- 【LeetCode 22】Generate Parentheses
- 我的第一篇博CSDN客
- 博为峰Java技术文章 ——JavaSE Swing使用Vector方式创建列表框
- 为你解惑:js中function(e)的e是什么意思,代表什么。。。。
- bzoj 1336 && bzoj 1337 最小圆覆盖 随机增量法
- Struts文件上传--1.单文件上传
- java实现xml读写操作