使用JDOM解析xml文档

时间:2021-11-06 07:20:41

一、使用JDOOM解析xml文档

准备工作

1.下载JDOM.jar 包

解析代码如下

import org.jdom2.Attribute;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.input.SAXBuilder; import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List; public class Main { public static void main(String[] args) throws Exception { //创建一个解析器
SAXBuilder builder=new SAXBuilder(); //创建一个文件输入流
InputStream in=new FileInputStream("src/server.xml"); //将流加载到解析器中。
Document document=builder.build(in); //获取文档的根节点
Element rootElement=document.getRootElement(); //将根节点的所有子节点获取放到一个集合中
List<Element> list=rootElement.getChildren(); //循环遍历所有子节点
for(Element element:list){
System.out.println("开始遍历第"+(list.indexOf(element)+1)+"本书======"); //获取所有的属性并遍历输出
List<Attribute> list1=element.getAttributes();
for(Attribute attr:list1){
System.out.println("属性名是"+attr.getName());
System.out.println("属性值是"+attr.getValue());
}
System.out.println("结束遍历第"+(list.indexOf(element)+1)+"本书======");
}
}
}

二、使用DOM4J解析xml文档

准备工作:

1.下载导入DOM4J的jar包,代码如下:

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader; import java.io.File;
import java.util.Iterator;
import java.util.List; public class Main { public static void main(String[] args) throws Exception { //创建一个解析器
SAXReader saxReader=new SAXReader(); //加载文档到dom中,注意是dom4j中的dom
Document document=saxReader.read(new File("src/server.xml")); //获取文档的根节点
Element bookStore=document.getRootElement(); //获取根节点的迭代器
Iterator iter=bookStore.elementIterator(); //迭代根节点下面的子节点
while(iter.hasNext()){
System.out.println("开始遍历谋一本书=========");
Element book=(Element)iter.next(); //获取节点的属性集合
List<Attribute> bookAttr=book.attributes(); //遍历属性集合
for(Attribute attr:bookAttr){
System.out.println("属性名:"+attr.getName()+"====属性值:"+attr.getValue());
} //获取子节点book的子节点迭代器
Iterator iterator=book.elementIterator();
while(iterator.hasNext()){
Element child=(Element)iterator.next();
System.out.println("节点名:"+child.getName()+"==节点值:"+child.getStringValue());
}
System.out.println("结束遍历谋一本书=========");
}
}
}