学习笔记-Java中的xml文件读取之JDOM解析

5 篇文章 0 订阅

JDOM技术是针对JAVA的一种DOM解析方式。
JDOM仅使用具体类而不使用接口。这在某些方面简化了API,但是也限制了灵活性。第二,API大量使用了Collections类,对于熟练使用Collections类的人来说,十分方便。

JDOM解析XML步骤:

1. 首先需要添加JDOM的jar包。点击这里跳转至JDOM官网
2. 创建一个saxBuilder的对象
3. 创建一个输入流,将xml文件加载到输入流中
4. 通过saxBuilder的build方法将输入流加载到SAXBuilder中
5. 通过document对象获取xml文件的根节点
6. 获取根节点下的子节点的集合
7. 遍历获取属性值

同样,看例子:

public class JDOMTest {
    private static List<Book> booksList = new ArrayList<Book>();
    public static void main(String[] args) {
        //1、创建一个saxBuilder的对象
        SAXBuilder saxBuilder = new SAXBuilder();
        InputStream in;
        try {
            //2、创建一个输入流,将xml文件加载到输入流中
            in = new FileInputStream("src/res/books.xml");
            //3、通过saxBuilder的build方法将输入流加载到SAXBuilder中
            Document document = saxBuilder.build(in);
            //4、通过document对象获取xml文件的根节点
            Element rootElement = document.getRootElement();
            //5、获取根节点下的子节点的集合
            List<Element> bookList = rootElement.getChildren();
            //继续进行解析
            for (Element book : bookList) {
                System.out.println("=========开始解析第"+ (bookList.indexOf(book) + 1) + "本书===========");
                //解析book的属性
                List<Attribute> attrList = book.getAttributes();
                //遍历attrList
                for (Attribute attr : attrList) {
                    System.out.println("属性值:"+attr.getName()+"---属性值:"+attr.getValue());
                }
                //对book节点的字节点的节点名和节点值的遍历
                List<Element> bookChilds = book.getChildren();
                for (Element bookChild : bookChilds) {
                    System.out.println("节点名:" + bookChild.getName() + "---节点值+ "+bookChild.getValue());
                }
                System.out.println("=========结束解析第"+ (bookList.indexOf(book) + 1) + "本书===========");
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (JDOMException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值