`

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

    博客分类:
  • java
阅读更多

package com.imooc.domtest.test;

import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class DOMTest {

 public static void main(String[] args) {
  //创建一个DocumentBuilderFactory的对象
  DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  //创建一个DocumentBuilder的对象
  try {
   //创建DocumentBuilder对象
   DocumentBuilder db = dbf.newDocumentBuilder();
   //通过DocumentBuilder对象的parser方法加载books.xml文件到当前项目下
   Document document = db.parse("books.xml");
   //获取所有book节点的集合
   NodeList bookList = document.getElementsByTagName("book");
   //通过nodelist的getLength()方法可以获取bookList的长度
   System.out.println("一共有" + bookList.getLength() + "本书");
   //遍历每一个book节点
   for (int i = 0; i < bookList.getLength(); i++) {
    System.out.println("=================下面开始遍历第" + (i + 1) + "本书的内容=================");
    //通过 item(i)方法 获取一个book节点,nodelist的索引值从0开始
    Node book = bookList.item(i);
//    获取book节点的所有属性集合
    NamedNodeMap attrs = book.getAttributes();
    System.out.println("第 " + (i + 1) + "本书共有" + attrs.getLength() + "个属性");
//    遍历book的属性
    for (int j = 0; j < attrs.getLength(); j++) {
     //通过item(index)方法获取book节点的某一个属性
     Node attr = attrs.item(j);
     //获取属性名
     System.out.print("属性名:" + attr.getNodeName());
     //获取属性值
     System.out.println("--属性值" + attr.getNodeValue());
    }
//    //前提:已经知道book节点有且只能有1个id属性
//    //将book节点进行强制类型转换,转换成Element类型
//    Element book = (Element) bookList.item(i);
//    //通过getAttribute("id")方法获取属性值
//    String attrValue = book.getAttribute("id");
//    System.out.println("id属性的属性值为" + attrValue);
    //解析book节点的子节点
    NodeList childNodes = book.getChildNodes();
    //遍历childNodes获取每个节点的节点名和节点值
    System.out.println("第" + (i+1) + "本书共有" +
    childNodes.getLength() + "个子节点");
    for (int k = 0; k < childNodes.getLength(); k++) {
     //区分出text类型的node以及element类型的node
     if (childNodes.item(k).getNodeType() == Node.ELEMENT_NODE) {
      //获取了element类型节点的节点名
      System.out.print("第" + (k + 1) + "个节点的节点名:"
      + childNodes.item(k).getNodeName());
//      获取了element类型节点的节点值
      System.out.println("--节点值是:" + childNodes.item(k).getFirstChild().getNodeValue());
//      System.out.println("--节点值是:" + childNodes.item(k).getTextContent());
     }
    }
    System.out.println("======================结束遍历第" + (i + 1) + "本书的内容=================");
   }
  } catch (ParserConfigurationException e) {
   e.printStackTrace();
  }  catch (SAXException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
  
 }
}

分享到:
评论

相关推荐

    java解析xml——dom

    ### Java解析XML——DOM详解 #### 一、DOM解析概念 **Document Object Model (DOM)**是一种平台和语言中立的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。DOM最初是为HTML设计的,但后来也被...

    手把手教你通过java解析xml(csdn)————程序.pdf

    本教程可能使用的是另一种流行的方式,即基于XStream库的XML绑定,这种方式可以将XML对象直接转换为Java对象,反之亦然,非常方便。 为了使用XStream,你需要先添加XStream库的依赖。如果你使用Maven,可以在pom....

    使用java解析XML文件,解析完之后将解析结果导入mysql数据库中

    首先,我们需要引入处理XML的Java库——JAXB(Java Architecture for XML Binding)和DOM(Document Object Model)API。JAXB用于对象与XML之间的映射,而DOM则用于解析整个XML文档到内存中的树形结构。对于数据库...

    java读取xml文件

    总的来说,Java提供了多种方式处理XML文件,从简单的DOM和SAX解析到强大的第三方库。根据项目需求和性能考虑,选择合适的解析方法和工具至关重要。通过熟练掌握这些技术,开发者可以更好地处理XML数据,提升工作效率...

    java处理xml文件

    总之,Java提供了多种方式来处理XML文件,开发者可以根据需求选择适合的解析策略。DOM适用于小规模、频繁访问的场景,而SAX则适合大型、流式处理的情况。无论选择哪种方法,理解和熟练掌握XML处理是每个Java开发者...

    Android创建与解析XML(二)——详解Dom方式

    Dom方式创建与解析XML文档是一种使用编程语言,如Java,在Android平台实现的方式。这种方式利用了DOM(文档对象模型)的API,其中JAXP(Java API for XML Processing)提供的DocumentBuilder类是用来创建和解析XML...

    Java与XML读写之DOM篇

    Java与XML的交互是开发中常见的一种数据处理方式,特别是在需要处理结构化数据时。DOM(Document Object Model)是一种在Java中处理XML的标准方法,它将XML文档转换为一棵对象树,使得我们可以方便地访问和修改XML...

    用dom4j解析xml文件

    而DOM4J是Java中一个强大的、灵活的处理XML的库,它提供了丰富的API,使得XML的解析、创建、遍历以及修改变得更为简便。本篇文章将深入探讨如何使用DOM4J来解析XML文件,以及通过示例代码来展示其基本操作。 首先,...

    dom4j实战(一)——使用dom4j从XML中读取数据源配置

    这篇名为"dom4j实战(一)——使用dom4j从XML中读取数据源配置"的博客文章将深入探讨如何利用DOM4J从XML文件中读取数据源配置。 首先,我们需要理解DOM4J的基本概念。DOM4J是基于DOM模型的,DOM(Document Object ...

    java工具类——dom4j

    dom4j是sourceforge.net上的一个开源项目,主要用于对XML的解析。

    java操作xml工具包

    这里提到的两个关键库——XStream和DOM4J,都是Java中广泛使用的XML处理工具。 XStream是一个Java库,它提供了一种简单的方式来序列化和反序列化Java对象到XML,反之亦然。它的核心优势在于其简洁的API和易用性。...

    dom4j---xml解析jar包

    **DOM4J——XML解析库详解** XML(eXtensible Markup Language)作为一种标记语言,广泛应用于数据交换、配置文件和文档存储等领域。在Java环境中,解析XML文档时,我们通常会遇到各种库,其中DOM4J是一个非常流行...

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

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

    android开发之xml文件操作——xml创建和pull解析xml

    XML解析则分为DOM、SAX和Pull三种主要方式。DOM解析器将整个XML文档加载到内存中,形成一个树形结构,便于访问任意节点,但内存消耗大;SAX解析器采用事件驱动模型,逐行读取,适合处理大型XML文件,但编程相对复杂...

    dom4j读写xml文件

    标题 "dom4j读写XML文件" 涉及到的是Java编程中处理XML文档的一种常见库——dom4j。这个库提供了丰富的API,使得开发者能够方便地读取、解析、修改以及创建XML文件。在Java领域,XML常用于数据交换、配置文件以及...

    java解析XML所需要的完整包(包括XStream.jar,dom4j.jar和xpull/xpp.jar)

    在这个压缩包中包含的三个关键组件——XStream.jar、dom4j.jar和xpp3-1.1.4c.jar,都是Java开发者在处理XML时不可或缺的工具。 1. **XStream.jar**: XStream是一款强大的Java库,用于将Java对象序列化为XML,以及...

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

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

    android开发之xml文件操作——SAX

    SAX(Simple API for XML)是一种事件驱动的解析器,它不像DOM解析器那样将整个XML文档加载到内存中,而是逐行读取,因此在处理大型XML文件时更加高效。 首先,我们需要了解SAX解析的基本流程。SAX解析器在读取XML...

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

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

    安卓Android源码——xml-dom201311060201.zip

    总结起来,Android中的XML DOM解析是通过Java标准库提供的API来实现的,它提供了一种直观且强大的方式来处理XML数据。然而,根据实际需求和资源限制,开发者应灵活选择合适的解析策略,以实现最优的性能和效率。在...

Global site tag (gtag.js) - Google Analytics