`
yangjayup
  • 浏览: 252349 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java解析xml之DOM解析

阅读更多

首先引入一段DOM解析的概念:

DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。DOM以及广义的基于树的处理具有几个优点。首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改。它还可以在任何时候在树中上下导航,而不是像SAX那样是一次性的处理。DOM使用起来也要简单得多。

下面介绍两种我用到过的DOM解析方法:

一:对整个xml进行解析,通过node.getNodeType()==Node.ELEMENT_NODE判断是否一个新的节点开始,可以用来获取多组数据。通过TagName获取内容。DocumentBuilder dombuilder=domfac.newDocumentBuilder();

         InputStream is=new FileInputStream("*******.xml");

         Document doc=dombuilder.parse(is);

         Element root=doc.getDocumentElement();
         NodeList books=root.getChildNodes();
	 if(books!=null){
	   for(int i=0;i < books.getLength();i++){
                Node book=books.item(i);
                if(book.getNodeType()==Node.ELEMENT_NODE){
                  for(Node node=book.getFirstChild();node!=null;node=node.getNextSibling()){
                        if(node.getNodeType()==Node.ELEMENT_NODE){
                            if(node.getNodeName().equals("name")){
                                 String name=node.getFirstChild().getNodeValue();
                             }
                         }
                     }
                   }
	   }
        }
 

二:获取某个标签然后对该标签进行遍历

  try {

          URL url = new URL("url");
          try {
            URLConnection URLconnection =url.openConnection () ;
            HttpURLConnection httpConnection =(HttpURLConnection)URLconnection;
            int responseCode =httpConnection.getResponseCode ( ) ;
            if ( responseCode == HttpURLConnection.HTTP_OK) {
                InputStream in = httpConnection.getInputStream ( ) ;
                try {
                    DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
                    DocumentBuilder db=factory.newDocumentBuilder();
                    Document doc = db.parse(in);
                    
                    NodeList nl = doc.getElementsByTagName("Hotel");//对xml中所有Hotel标签进行循环
                    for (int j=0;j<nl.getLength();j++){
                        System.out.println(doc.getElementsByTagName("ID").item(j).getFirstChild().getNodeValue());//根据标签名称获取值
                        System.out.println(doc.getElementsByTagName("TaxPercentage").item(j).getFirstChild().getNodeValue());
                        System.out.println(doc.getElementsByTagName("Name").item(j).getFirstChild().getNodeValue());

                        NodeList nlAmen = doc.getElementsByTagName("HotelAmenities").item(j).getChildNodes();//该标签含有子标签
                        for(int m=0;m<nlAmen.getLength();m++){
                            Node nn = nlAmen.item(m);
                            Node nnn = nn.getFirstChild();
                            if(nnn != null){
                                System.out.println(nnn.getNodeValue());
                            }
                        }
                    }
                } catch(Exception e ) {
                     e.printStackTrace() ;
                }
             } else {
                 System.out.println( "HTTP connection response !=HTTP_OK" );
             }
          } catch(IOException e) {
               e.printStackTrace ( ) ;
          }
       } catch (MalformedURLException e ) {
           e.printStackTrace ( ) ;
       }

 

 

以上两种解析方法,个人认为第二种更加清晰一些,使用起来更方便,它不仅可以解析整个xml,也可以只关注xml的某一块,如:只解析xml中<name>标签的内容NodeList nl = doc.getElementsByTagName("name");

分享到:
评论

相关推荐

    java解析xml——dom

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

    JAVA 解析XML生成XML文档实例

    JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML

    java 解析xml 多级

    Java作为一种广泛使用的后端编程语言,提供了多种方式来解析XML文档,使得处理多级嵌套的数据变得可能。本文将详细讲解如何在Java中解析XML,特别是针对多级结构的情况。 首先,Java提供了两种主要的API来处理XML:...

    DOM_XML.rar_DOM_dom xml_dom xml java_dom解析xml_java解析xml

    标题中的"DOM_XML.rar"可能是一个包含DOM解析XML相关示例的压缩文件,"DOM_dom xml_dom xml java_dom解析xml_java解析xml"这部分描述了文件的主要内容,即关于DOM(Document Object Model)在XML解析中的应用,特别...

    java解析xml,dom解析,jsoup解析,完整项目

    本项目涵盖了Java解析XML的两种主要方法:DOM(Document Object Model)解析和Jsoup库的解析。这两种方法各有优缺点,适用于不同的场景。 DOM解析是将整个XML文档加载到内存中,形成一个树形结构,然后通过这个结构...

    Java使用sax、dom、dom4j解析xml文档

    Java提供了多种解析XML的API,包括SAX(Simple API for XML)、DOM(Document Object Model)以及DOM4J。下面我们将详细探讨这些解析方式及其在实际开发中的应用。 1. SAX解析器: SAX是一种基于事件驱动的解析器,...

    java_dom解析xml xml java

    标题“java_dom解析xml xml java”表明了本文档的主题是关于如何使用Java中的DOM技术来解析XML文件。 #### 描述分析 描述中提到这是一个适合新手入门的内容,并给出了一个简单的XML示例。该XML文档包含了一个`...

    java解析xml并导入数据库(dom4j).doc

    Java 解析 XML 并导入数据库(DOM4J) Java 解析 XML 并导入数据库是指使用 Java 语言将 XML 文件解析并将其内容导入到数据库中。下面是使用 DOM4J 库来实现此功能的相关知识点: 一、XML 文件解析 XML...

    java解析XML dom4j dom4j-1.6.1.jar

    Java解析XML时,dom4j是一个非常流行的库,它提供了灵活且强大的API来处理XML文档。dom4j-1.6.1.jar是这个库的一个版本,发布于2005年,它支持XML的读取、写入、操作以及查询功能。在本文中,我们将深入探讨dom4j的...

    java 解析XML性能对比分析Demo

    本文将深入探讨几种不同的XML解析方法,并通过实际的“Java解析XML性能对比分析Demo”来展示它们的性能差异。我们将讨论DOM、SAX、JDOM、DOM4J和JAXB这五种解析器,以及它们各自的特点和适用场景。 1. DOM(文档...

    Java解析XML文件的DOM和SAX方式.doc

    Java 解析 XML 文件的 DOM 和 SAX 方式 Java 解析 XML 文件的 DOM 和 SAX 方式是指在 Java 中使用 Document Object Model(DOM)和 Simple API for XML(SAX)两种方式来解析 XML 文件的技术。下面将详细介绍这两种...

    java解析xml之dom解析xml示例分享

    DOM将整个XML文件加载到...应用程序可以通过遍历节点树的方式来解析XML文件中的各个节点、属性等信息;这种方式便于对XML节点的添加修改等,而且解析也很方便,然后它比较耗费内存,解析速度也不快,下面看使用示例吧

    java解析XML文件

    Java解析XML文件是Java开发中常见的一项任务,XML(eXtensible Markup Language)作为一种结构化数据存储格式,被广泛用于数据交换、配置文件和Web服务等场景。本篇文章将详细探讨Java如何利用DOM4J库来解析XML文件...

    dom4j.jar包,java解析xml dom4j.jar包

    解析XML文件时,DOM4J提供了两种主要的方式:DOM阅读器和SAX阅读器。 - **DOM阅读器**:首先,通过`DocumentFactory.createDocument()`方法创建一个`Document`对象,然后使用`read()`方法读取XML文件,将整个XML...

    java平台中使用DOM解析xml文件

    在Java平台上,DOM解析器提供了对XML文档的全面和结构化的访问。 使用DOM解析XML的基本步骤如下: 1. **导入必要的库**:在Java中,DOM解析功能主要由`javax.xml.parsers`和`org.w3c.dom`包提供。因此,首先需要在...

    java dom 解析 xml 实例

    Java DOM 解析 XML 实例是 Java 语言中常用的 XML 解析方法之一,使用 W3C 推荐的文档对象模型(Document Object Model,DOM)来解析 XML 文档。DOM 提供了一个树形结构的对象模型,通过遍历树形结构可以访问和操作 ...

    java使用dom解析xml

    在 Java 中,DOM 解析允许开发者将整个 XML 文件加载到内存中,形成一个树形结构,然后通过这个结构来访问和操作 XML 的各个部分。 首先,我们需要引入 Java 的核心解析库,即 javax.xml.parsers 命名空间。这个库...

    Java解析XML工具类--(java源码)

    * 本类是专门解析XML文件的,主要用于为系统读取自己的配置文件时提供最方便的解析操作 * @author HX * */ public class XmlManager { /** * 得到某节点下某个属性的值 * @param element 要获取属性的...

    Java解析xml配置文件,DOM4J解析xml配置文件,提供使用文档和源码下载

    Java解析XML配置文件是开发过程中常见的一项任务,特别是在基于Java的框架中,如Spring,大量使用XML文件来存储配置信息。DOM4J是Java中一个非常流行且功能强大的XML处理库,它提供了丰富的API用于读取、写入、修改...

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

    本教程将介绍如何使用Java解析XML文件,并将解析结果导入MySQL数据库。 首先,我们需要引入处理XML的Java库——JAXB(Java Architecture for XML Binding)和DOM(Document Object Model)API。JAXB用于对象与XML...

Global site tag (gtag.js) - Google Analytics