Dom4j解析小练习

使用Dom4j解析两个XML文件小练习

score.xml

<?xml version="1.0" encoding="UTF-8"?>
<Students>
	<student id="1">
		<name>张三</name>
		<sc>java</sc>
		<score>89</score>
	</student>
	<student id="2">
		<name>李四</name>
		<sc>sql</sc>
		<score>58</score>
	</student>
</Students>

Dom4jTest.java

package com.biubiubiu.demo01XML;

import java.io.InputStream;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.jupiter.api.Test;

public class Dom4jTest {
	@Test
	public void DOM4J() {
		try {
			//1.获得文件字节输入流,读取XML文件
			InputStream is = Dom4jTest.class.getClassLoader().getResourceAsStream("score.xml");
			//2.创建文件解析器
			SAXReader sr = new SAXReader();
			//3.创建文档对象
			Document document = sr.read(is);
			//4.获取文档中的根元素
			Element root = document.getRootElement();
			//5.获取子元素
			List<Element> element1 = root.elements();
			for (Element ele1 : element1) {
				//获取元素名称
				System.out.println("****" + ele1.getName());
				//获取attribute对象,获取元素中的id属性,根据属性名获得属性值
				System.out.println("	id:" + ele1.attributeValue("id"));
				List<Element> element2 = ele1.elements();
				for (Element ele2 : element2) {
					//获取标签名称及内容
					System.out.println("		"+ele2.getName() + "," + ele2.getText());
				}
			}
		} catch (DocumentException e) {
			e.printStackTrace();
		}
	}
}

bookMessage.xml

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
	<book category="COOKING">
		<title lang="en">人与自然</title>
		<author>Giada De Laurentiis</author>
		<year>2005</year>
		<price>30.00</price>
	</book>
	<book category="CHILDREN">
		<title lang="en">Harry Potter</title>
		<author>J K. Rowling</author>
		<year>2005</year>
		<price>29.99</price>
	</book>
	<book category="WEB">
		<title lang="en">XQuery Kick Start</title>
		<author>James McGovern</author>
		<author>Per Bothner</author>
		<author>Kurt Cagle</author>
		<author>James Linn</author>
		<author>Vaidyanathan Nagarajan</author>
		<year>2003</year>
		<price>49.99</price>
	</book>
	<book category="WEB">
		<title lang="en">Learning XML</title>
		<author>Erik T. Ray</author>
		<year>2003</year>
		<price>39.95</price>
	</book>
</bookstore>

Dom4jTest2.java

package com.biubiubiu.demo01XML;

import java.io.InputStream;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;

public class Dom4jTest2 {
	@Test
	public void Test2() {
		try {
			InputStream is = Dom4jTest2.class.getClassLoader().getResourceAsStream("bookMessage.xml");
			SAXReader sr = new SAXReader();
			Document document = sr.read(is);
			Element rootElement = document.getRootElement();
			List<Element> element1 = rootElement.elements();
			for (Element ele1 : element1) {
				System.out.println("****" + ele1.getName());
				System.out.println("	category:" + ele1.attributeValue("category"));
				List<Element> element2 = ele1.elements();
				for (int i=0; i<element2.size(); i++) {
					//获取标签名称及内容
					if(i==0) {
						System.out.println("		title标签的属性:" + element2.get(i).attributeValue("lang") +"标签元素内容:"+element2.get(i).getText());
					}else {
						System.out.println("		"+element2.get(i).getName() + ",标签元素内容:" + element2.get(i).getText());
					}
				}
			}
		} catch (DocumentException e) {
			e.printStackTrace();
		}
	}
}

发布了108 篇原创文章 · 获赞 39 · 访问量 9366

猜你喜欢

转载自blog.csdn.net/qq_40246175/article/details/102791544
今日推荐