package org.fkjava;


import java.io.InputStream;

import java.util.List;


import org.dom4j.Attribute;

import org.dom4j.Document;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;


public class TestRead {

/**

* 读取note.xml

*/

public void readNode(){

InputStream is = null;

try {

is=this.getClass().getResourceAsStream("/note.xml");

SAXReader saxReader=new SAXReader();

Document document = saxReader.read(is);

//读取根元素

Element root_node=document.getRootElement();

System.out.println(root_node.getName());

/** <note>/

 <to id="1">马航</to>

 <from>失联</from>

 <heading>飞机去哪儿了</heading>

 <body>你快回来</body>

</note>*/

// 读取子元素 to

Element to_node=root_node.element("to");

System.out.println(to_node.getName()+"="+to_node.getText());

//获取子元素to的属性

Attribute attribute=to_node.attribute("id");

System.out.println(attribute.getName()+"="+attribute.getValue());

System.out.println(root_node.element("from").getName()+"="+root_node.element("from").getText());

System.out.println("heading="+root_node.element("heading").getText());

System.out.println("body="+root_node.element("body").getText());

} catch (Exception e) {

e.printStackTrace();

}finally{

try {

is.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

//不知道元素情况时,解析xml

public void read(){

InputStream is = null;

try {

is=this.getClass().getResourceAsStream("/org/fkjava/note.xml");

Document document = new SAXReader().read(is);

//根元素

Element root_node=document.getRootElement();

System.out.println("根元素名字:"+root_node.getName());

//根元素下面的所有子元素(不包括子元素下面的子元素)

List<Element> child_node_list=root_node.elements();

for(Element child_node:child_node_list){

System.out.println(child_node.getName()+"="+child_node.getText());

//遍历当前子元素的属性

List<Attribute> attributes=child_node.attributes();

for(Attribute attribute:attributes){

System.out.println(attribute.getName()+"="+attribute.getText());

}

}

} catch (Exception e) {

e.printStackTrace();

}finally{

try {

is.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

public void readBook(){有疑问

InputStream is = null;

try {

is=this.getClass().getResourceAsStream("/org/fkjava/book.xml");

Document document=new SAXReader().read(is);

//读取根元素books

Element root_node=document.getRootElement();

System.out.println(root_node.getName());

//返回子元素集合

List<Element> child_node_list=root_node.elements();

for(Element child_node:child_node_list){

System.out.println(child_node.getName()+"="+child_node.getText());

}

} catch (Exception e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

TestRead t = new TestRead();

//t.readNode();

//t.read();

t.readBook();

}

}