使用DOM4J解析器解析本地xml
1.导入dom4j-1.6.1.jar
2.写一个xml文档
- 就是xml读取对象以流的方式读取到xml文档并将其转成dom文档对象(dom树),然后获取各个子节点及其内容就达到解析获取到xml中数据。
<!--xml文档声明-->
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book id="1001">
<name>金苹果</name>
<info>锄禾日当午</info>
</book>
<book id="1002">
<name>银苹果</name>
<info>汗滴禾下土</info>
</book>
</books>
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.List;
/**
* 解析本地xml文件--使用DOM4J解析器
* 需要导入dom4j-1.6.1.jar
*/
public class MainXML {
public static void main(String[] args) throws FileNotFoundException, DocumentException {
//1.创建指向xml文件的输入流
FileInputStream fis = new FileInputStream("src/Demo1.xml");
//2.创建xml读取对象
SAXReader sr = new SAXReader();
//3.读取并得到文档对象(即读取xml文件转化为dom树)
Document doc = sr.read(fis);
//4.通过文档获取dom树的根元素
Element root = doc.getRootElement();
//5.开始解析元素
System.out.println(root.getName());//获取根元素名称books
List<Element> es = root.elements();//获取根下所有子节点(两个book节点)
//每次循环获取一本书,并打印书的id,name,info信息
for (int i = 0; i < es.size(); i++) {
Element book = es.get(i);//获取book节点元素
//获取节点id属性值
System.out.println(book.attributeValue("id"));
//获取book节点中子节点name内容
System.out.println(book.elementText("name"));
//获取book节点中子节点info内容
System.out.println(book.elementText("info"));
System.out.println("=============");
}
}
}