用java解析XML

 思路就是代码注释:

package cn.liu.xmtest;

/**
 * 解析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 Demo01 {
	public static void main(String[] args) throws Exception {
		//1.创建SaxReader对象,用读取xml对象
		SAXReader is = new SAXReader();
		//2.读取xml文件,将xml转为Document对象
		Document doc = is.read(new File("src\\demo03.xml"));
		//3.得到xml的根对象
		Element root= doc.getRootElement();
		//4.获取根对象下的所有子对象
		Iterator<?> a = root.elementIterator();
		while(a.hasNext()) {
			//4.1取出根的子元素元素
			Element ele = (Element)a.next();
			System.out.println(ele.getName());
			//4.2获取子元素ele的属性,若有多个继续迭代器,没有就取一次
			Attribute att = ele.attribute("id");
			System.out.println(att.getName()+"="+att.getValue());
			//获取ele元素下的子元素
			Iterator<?> b = ele.elementIterator();
			while(b.hasNext()) {
				Element sunEle = (Element)b.next();
				System.out.println(sunEle.getName()+"="+sunEle.getText());
			}
			System.out.println("---------------------");
		}
	}
}

 xml文件:

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE data SYSTEM "aas.dtd">
<datas>
	<student id="1">
		<name>小李</name>
		<course>数学</course>
		<score>98</score>
	</student>
	<stdent id="2">
		<name>王五</name>
		<course>语文</course>
		<score>88</score>
	</stdent>
</datas>

运行结果:

红色是JDK11的警告不用管。

用java解析XML