Java修炼——四种方式解析XML_JDOM

四种方式解析XML:DOM     JDOM    DOM4J    SAX

JDOM使用前需要上传jar包。

先写一个XML栗子:

<?xml version="1.0" encoding="UTF-8"?>
<books xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="{book.xsd}">
	<book id="1001">
		<name>从入门到放弃</name>
		<auto>高人</auto>
		<price>35.5</price>
	</book>
	<book id="1002">
		<name>从删库到跑路</name>
		<auto>高小人</auto>
		<price>48.3</price>
	</book>
	<book id="1003">
		<name>从java到光头</name>
		<auto>高大人</auto>
		<price>16.6</price>
	</book>
</books>

 

JDOM解析XML的步骤:

1) 创建一个 SAXBuilder 对象

2) 调用 build 方法,得到 Document 对象(通过 IO 流)

3) 获取根节点

4) 获取根节点的直接子节点的集合

5) 遍历集合。

package com.bjsxt.JDOM;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.security.KeyStore.Entry.Attribute;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;

public class TestJDOM {
	public static void main(String[] args) throws FileNotFoundException, JDOMException, IOException {
		//1) 创建一个 SAXBuilder 对象 
		SAXBuilder saxb=new SAXBuilder();
		//2) 调用 build 方法,得到 Document对象(通过 IO 流) 
		Document doc = saxb.build(new FileInputStream("book.xml"));
		//3) 获取根节点 
		Element root = doc.getRootElement();//得到的books结点
		//4) 获取根节点的直接子节点的集合 
		List<Element> boolList = root.getChildren();//得到book 
		//5) 遍历集合,得到book的每一个结点
		for (int i = 0; i <boolList.size(); i++) {
			Element book = boolList.get(i);
			List<org.jdom.Attribute> attList = book.getAttributes();
			for (org.jdom.Attribute att : attList) {
				System.out.println(att.getName()+"\t"+att.getValue());
			}
		}
		
		//得到每一个子节点
		System.out.println("\n---------得到每一个子节点-----------");
		for (int i = 0; i <boolList.size(); i++) {
			Element book = boolList.get(1);//得到每一个book结点
			List<Element> subook = book.getChildren();
			for (Element ele : subook) {
				System.out.println(ele.getName()+"\t"+ele.getValue());
				
			}
			System.out.println("==================");
		}
	}
}

​​​​​​​运行截图:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值