xml dom4j解析

xml解析
1.创建java工程
2.创建xml的文件夹,创建stus.xml
3.导入log4j的jar包,放到lib下
4.文档在docs下的index.html  Quick start
5.创建SaxReader对象
6.指定解析的xml
7.获取根元素
8.根据根元素获取子元素或者下面的子孙元素

    element.element("stu") : 返回该元素下的第一个stu元素
    element.elements(); 返回该元素下的所有子元素。 

注:工程有感叹号,99%是build path多了一些jar文件或jar包冲突.
      工程--->右键----->build path--->config build path----->library

MainTest:
 

package com.yuming.test;

import java.io.File;
import java.util.List;

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

/**
 * xml解析
 * <p>Title: MainTest</p>
 * <p>Description: </p>
 * <p>Company: www.itcast.cn</p> 
 * @version 1.0
 */
public class MainTest {
	
	public static void main(String[] args) {
		try {
			//1.创建sax读取对象
			SAXReader reader = new SAXReader();
			//2.指定解析的xml源文件
		    Document document = reader.read(new File("src/xml/stus.xml"));
		    //3.得到元素
		    //得到根元素
		    Element rootElement = document.getRootElement();
		    //System.out.println(rootElement.getName());  //-->stus
			    //获得根元素下的子元素
			    //Element element = rootElement.element("stu");
			    //System.out.println(rootElement.element("stu").getName());//--->stu
			    //获得根元素下的子孙元素 age的值
			    	//方式1 getStringValue()
			   //System.out.println(rootElement.element("stu").element("age").getStringValue());
			    	//方式2 getText()
			   //System.out.println(rootElement.element("stu").element("age").getText());
		    
		    //获取根元素下的所有子元素 //不包括子孙元素
		    List<Element> elements = rootElement.elements();
		    //System.out.println(elements.size());//2
		    
		    //遍历所有的stu元素
		    for (Element element : elements) {
		    	//获取stu元素下面的name元素
				String name = element.element("name").getText();
				String age = element.element("age").getText();
				String address = element.element("address").getText();
				
				System.out.println("name="+name+",age="+age+",address="+address);
			}
		    
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		
		
	}

}

stus.xml:
 

<?xml version="1.0" encoding="UTF-8"?>
<stus>
	<stu>
		<name>张三</name>
		<age>18</age>
		<address>北京</address>
	</stu>
	<stu>
		<name>李四</name>
		<age>20</age>
		<address>上海</address>
	</stu>
</stus>

 运行结果:

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值