`

java处理XML文件4种方式——JDOM处理XML

    博客分类:
  • java
阅读更多

package com.imooc.jdomtest;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.jdom2.Attribute;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;

import com.imooc.entity.Book;


public class JDOMTest {
 private static ArrayList<Book> booksList = new ArrayList<Book>();
 /**
  * @param args
  */
 public static void main(String[] args) {
  // 进行对books.xml文件的JDOM解析
  // 准备工作
  // 1.创建一个SAXBuilder的对象
  SAXBuilder saxBuilder = new SAXBuilder();
  InputStream in;
  try {
   // 2.创建一个输入流,将xml文件加载到输入流中
   in = new FileInputStream("src/res/books.xml");
   InputStreamReader isr = new InputStreamReader(in, "UTF-8");
   // 3.通过saxBuilder的build方法,将输入流加载到saxBuilder中
   Document document = saxBuilder.build(isr);
   // 4.通过document对象获取xml文件的根节点
   Element rootElement = document.getRootElement();
   // 5.获取根节点下的子节点的List集合
   List<Element> bookList = rootElement.getChildren();
   // 继续进行解析
   for (Element book : bookList) {
    Book bookEntity = new Book();
    System.out.println("======开始解析第" + (bookList.indexOf(book) + 1)
      + "书======");
    // 解析book的属性集合
    List<Attribute> attrList = book.getAttributes();
    // //知道节点下属性名称时,获取节点值
    // book.getAttributeValue("id");
    // 遍历attrList(针对不清楚book节点下属性的名字及数量)
    for (Attribute attr : attrList) {
     // 获取属性名
     String attrName = attr.getName();
     // 获取属性值
     String attrValue = attr.getValue();
     System.out.println("属性名:" + attrName + "----属性值:"
       + attrValue);
     if (attrName.equals("id")) {
      bookEntity.setId(attrValue);
     }
    }
    // 对book节点的子节点的节点名以及节点值的遍历
    List<Element> bookChilds = book.getChildren();
    for (Element child : bookChilds) {
     System.out.println("节点名:" + child.getName() + "----节点值:"
       + child.getValue());
     if (child.getName().equals("name")) {
      bookEntity.setName(child.getValue());
     }
     else if (child.getName().equals("author")) {
      bookEntity.setAuthor(child.getValue());
     }
     else if (child.getName().equals("year")) {
      bookEntity.setYear(child.getValue());
     }
     else if (child.getName().equals("price")) {
      bookEntity.setPrice(child.getValue());
     }
     else if (child.getName().equals("language")) {
      bookEntity.setLanguage(child.getValue());
     }
    }
    System.out.println("======结束解析第" + (bookList.indexOf(book) + 1)
      + "书======");
    booksList.add(bookEntity);
    bookEntity = null;
    System.out.println(booksList.size());
    System.out.println(booksList.get(0).getId());
    System.out.println(booksList.get(0).getName());
    
   }
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (JDOMException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

}

分享到:
评论

相关推荐

    xml数据前后台解析:jdom与dom4j源码,程序可以跑

    本文将深入探讨XML数据在前后台解析的过程中,重点介绍两种主流的Java XML解析库——JDOM和DOM4J,并提供实际运行的程序示例。同时,我们还会讨论如何使用jQuery在前端解析XML并展示数据。 首先,让我们了解XML的...

    java读取xml文件

    在Java中,如需更高效、功能更丰富的XML处理,可以使用Apache的Xerces和JAXB(Java Architecture for XML Binding),或者更流行的DOM4J和JDOM库。这些库提供了更简洁的API,便于操作XML文档。 例如,DOM4J允许通过...

    \"java xml 四\"之JDOM、DOM4J解析XML总结

    本篇文章主要聚焦于Java中解析XML的两种流行库——JDOM和DOM4J的总结。我们将深入探讨它们的工作原理、优缺点以及如何在实际项目中使用它们。 首先,让我们了解一下JDOM。JDOM是Java专门针对XML设计的一个解析库,...

    java语言——四种读取xml文件的方式,以及实现对excel文件的读取与保存(含相关的jar包)

    本资源分别用了四种方式:原生DOM、JDOM、SAX和DOM4J实现的对xml文件的读取,另外还有对excel文件读取与保存的例子,并且资源带有jdom.jar、poi-ooxml.jar和poi-3.7jar包

    xml解析jar包

    在Java开发中,处理XML文件通常需要借助特定的库或框架,本主题提到的三个jar包——dom4j-1.6.1.jar、jdom.jar和jaxen-1.1-beta-6.jar,就是常用的XML解析库。 1. dom4j-1.6.1.jar:这是一个灵活且功能强大的Java ...

    jdom4j解析xml

    jdom4j是一个开源的Java库,用于处理XML文档。它提供了一套简洁、高效的API,可以轻松地读取、修改和创建XML文件。与标准的DOM和SAX相比,jdom4j提供了更高级别的抽象,使得开发者可以更加专注于业务逻辑而不是底层...

    4中解析xml文件格式

    JDOM是Java的一个库,它提供了一种简单的方式来构建和操作XML文档。JDOM允许直接使用Java对象来代表XML结构,简化了XML处理。使用`org.jdom2.input.SAXBuilder`和`org.jdom2.Document`可以实现JDOM解析。 ```java ...

    xstream_dom4j_jdom_groovy解析xml

    本主题聚焦于四种不同的Java库——XStream、Dom4j、Groovy以及JDOM,它们都是用来解析和操作XML文档的工具。 1. **XStream**: XStream是一个Java库,它提供了将Java对象序列化为XML,以及从XML反序列化回Java对象...

    jdom-1.1.zip_jdom-1.0.jar包_jdom.z_jdom.zip_zip

    标题中的"jdom-1.1.zip_jdom-1.0.jar包_jdom.z_jdom.zip_zip"提及了几个关键的文件和版本,这主要涉及Java的XML处理库——JDOM。JDOM是一个用于处理XML文档的纯Java库,它提供了方便的API来创建、修改和读取XML数据...

    解析xml的jar包

    本文将深入探讨XML解析的基本概念、常用方法以及相关的Java库——JDOM。 XML文档由一系列元素构成,每个元素都包含标签、属性和内容。解析XML的过程就是识别这些元素,提取所需信息,并将其转化为内存中的数据结构...

    Jdom.chm & Dom4j.chm帮助文档

    《Jdom.chm & Dom4j.chm帮助文档》提供了关于Java中XML处理的重要库——JDOM和DOM4J的详细指南。这两个库是Java开发者处理XML数据时不可或缺的工具,它们都为XML文档对象模型(Document Object Model,简称DOM)提供...

    xml常用四种解析方式优缺点的分析

    本文将深入探讨XML的四种常见解析方式——DOM、SAX、StAX和JDOM,以及它们各自的优缺点。 1. DOM(Document Object Model)解析器: DOM解析器将整个XML文档加载到内存中,构建一个树形结构,允许开发者通过节点...

    java-xml驱动包.zip

    本压缩包中的四个文件——dom4j-1.6.1.jar、jaxen-1.1-beta-7.jar、jdom-1.1.jar和sax-2.0.1.jar,都是Java中著名的XML处理工具,下面我们来详细探讨一下它们各自的功能和应用场景。 1. **DOM4J**: DOM4J 是一个...

    Java Web 开发实战经典(基础篇)

    010304_XML解析 —— JDOM 010305_XML解析 —— DOM4J 010306_使用JavaScript操作DOM 010401_Tomcat服务器的安装及配置 020501_注释及Scriptlet 020502_page指令 020503_包含指令 020504_跳转指令 020505_实例操作:...

    jdom-1.0.jar.rar_jdom_jdom-1.0.j_jdom-1.0.jar_jdom.jar 1_jdom1.0

    这就引出了我们今天的话题——JDOM。 JDOM,全称Java Document Object Model,是一个专为Java设计的DOM(Document Object Model)实现。DOM是一种标准的接口,用于处理XML、HTML文档,它提供了一种树形结构来表示...

    Java解析XML的方法

    通过对Java解析XML的四种方法——DOM、SAX、StAX和JDOM的介绍,我们可以看到每种方法都有其适用的场景。在实际应用中,根据具体的项目需求和资源限制,选择合适的解析方式是非常重要的。希望本文能够帮助开发者更好...

    sax,dom解析xml和生产xml文件

    本文将深入探讨两种主要的XML解析方法——SAX(Simple API for XML)和DOM(Document Object Model),并讲解如何使用它们来解析XML文件以及生成XML文件。 一、SAX解析XML SAX是一种事件驱动的解析器,它逐行扫描...

    JDOM SAX解析XML的对比及相关内容

    本文将深入探讨两种常见的Java XML解析器——JDOM和SAX,分析它们的特点、优势与应用场景,并提供相关的使用示例。 JDOM是一个纯Java实现的XML解析库,它提供了DOM(Document Object Model)接口来操作XML文档。DOM...

    解析XML的四种方法(包括JAR包)

    本文将详细介绍四种解析XML的方法,并结合给定的资源——dom4j-1.6.1.jar、jdom.jar以及MyXMLReader.java,来探讨如何在Java项目中实现XML的解析。 1. DOM解析器: DOM(Document Object Model)是W3C推荐的一种...

    jdom-2.0.3.rar

    1. **解析XML文档**:JDOM提供两种主要的解析方式——SAXBuilder和DOMBuilder。SAXBuilder基于事件驱动,适合处理大型XML文件,因为它不将整个文档加载到内存中;DOMBuilder则构建了整个XML文档树,方便进行查找和...

Global site tag (gtag.js) - Google Analytics