欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

1.13 Java之XML解析

程序员文章站 2022-07-14 16:59:49
...

1.13 Java之XML解析

package com.lujier.ReadXml;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;

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

/**
* TODO
*   @File:  ReadXml.java
 *  @Author: Lujier          @SINCE: 2020年8月12日 下午11:57:40
 * */
public class ReadXml {
	public static void main(String[] args) {
		/**
		dom4j解析技术:
	       1. 添加依赖: dom4j
	       2. 创建解析器SaxReader对象
	       3. 获取documents对象
	       4. 获取根元素
	       5. 获取根元素下的子元素
       */
		String file_path = "src/test/resources/students.xml";
		// 1. 创建解析器SAXReader对象
		SAXReader reader = new SAXReader();
		try {
			// 2. 创建并获取一个document对象
			FileInputStream inputs = new FileInputStream(file_path);
			Document doc = reader.read(inputs);
			// 3. 获取根元素
			Element root_ele = doc.getRootElement();
			// 4. 获取子元素
			List<Element> eles = root_ele.elements();
			// 4.1 遍历一级子元素
			for(Element ele :eles) {
				// getName是标签名,attributeValue()获取指定元素的属性值
//				System.out.printf(ele.getName()+"="+ele.attributeValue("name")+"\n");
				List<Element> son_eles = ele.elements();
				if(son_eles != null) {
					for(Element ele2 :son_eles) {
						System.out.printf(ele2.getName()+"="+ele2.attributeValue("id")+"\n");
	
					}
				}
			}
			inputs.close();
			
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

}

1.13 Java之XML解析