Java IO——xml文件解析四(DOM4J方式解析xml文件)

DOM4J也不是java官方提供的xml文件解析的方式,需要自己下载jar包,可以参考下载位置:点击打开链接

DOM4jTest.java

 

package dom4j;

import java.io.File;

import java.util.Iterator;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class Dom4jTest {

	@SuppressWarnings({ "rawtypes", "unchecked" })
	public static void main(String[] args) throws Exception {
		// 解析books.xml文件
		// 创建SAXReader的对象reader
		SAXReader reader = new SAXReader();
		// reader对象的read方法加载books.xml文件,获取document对象
		Document document = reader.read(new File("books.xml"));
		// 通过document对象获取根节点bookstore
		Element bookStore = document.getRootElement();
		// 遍历迭代器,获取根节点中的信息(书籍)
		Iterator it = bookStore.elementIterator();
		while (it.hasNext()) {
			System.out.println("----------开始遍历某本书------------");
			Element book = (Element) it.next();
			// 获取book的属性名和属性值
			List<Attribute> bookAttrs = book.attributes();
			for (Attribute attr : bookAttrs) {
				System.out.println("节点名:" + attr.getName() + "----节点值:" + attr.getValue());
			}
			Iterator itt = book.elementIterator();
			while(itt.hasNext()){
				Element bookchild = (Element)itt.next();
				//获取book子节点的属性名和属性值
					System.out.println("节点名:"+bookchild.getName()+"----节点值:"+bookchild.getName());
				}
			
			System.out.println("----------结束遍历某本书------------");
		}
	}

}


books.xml

 

 

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
	<book id="1">
		<name>冰与火之歌</name>
		<author>乔治马丁</author>
		<year>2014</year>
		<price>89</price>
	</book>
	<book id="2">
		<name>安徒生童话</name>
		<year>2004</year>
		<price>77</price>
		<language>English</language>
	</book>
	<book id="3">
		<name>红楼梦</name>
		<author>曹雪芹</author>
		<year>2000</year>
		<price>198</price>
		<language>Chinese</language>
	</book>
</bookstore>


运行结果截图:

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 导入dom4j库 在项目中添加dom4j的库文件,或者使用Maven或Gradle等构建工具添加依赖。 2. 创建Document对象 使用SAXReader类的read方法读取xml文件,并将其转化为Document对象。 ```java SAXReader reader = new SAXReader(); Document document = reader.read(new File("example.xml")); ``` 3. 获取根节点 通过Document对象的getRootElement方法获取xml文件的根节点。 ```java Element root = document.getRootElement(); ``` 4. 获取子节点 使用Element对象的elements方法获取所有子节点,并使用element方法获取指定子节点。 ```java List<Element> list = root.elements(); // 获取所有子节点 Element child = root.element("child"); // 获取名为child的子节点 ``` 5. 获取节点属性 使用Element对象的attributeValue方法获取节点的属性值。 ```java String value = child.attributeValue("attr"); // 获取名为attr的属性值 ``` 6. 获取节点文本 使用Element对象的getText方法获取节点的文本内容。 ```java String text = child.getText(); // 获取节点的文本内容 ``` 完整示例代码: ```java import java.io.File; import java.util.List; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class Dom4jDemo { public static void main(String[] args) throws Exception { SAXReader reader = new SAXReader(); Document document = reader.read(new File("example.xml")); Element root = document.getRootElement(); List<Element> list = root.elements(); for (Element child : list) { String attrValue = child.attributeValue("attr"); String text = child.getText(); System.out.println("attr value: " + attrValue); System.out.println("text: " + text); } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值