使用JDOM解析xml文档

一、使用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("结束遍历谋一本书=========");
        }
    }
}
原文地址:https://www.cnblogs.com/xiaoao/p/9633225.html