一、引言
说起来学java好长时间了,却不会XML的解析,感觉好惭愧。由于要用到XML所以学习下怎么解析XML,百度了下发下JAVA下有好多方式去解析,在这就先学习下以DOM模式的解析。
W3C关于XML的DOM教程:http://www.w3school.com.cn/xmldom/index.asp
二、解析XML
如何 装载XML
//使应用程序能够从 XML 文档获取生成 DOM 对象树的解析器 DocumentBuilderFactory fac=DocumentBuilderFactory.newInstance(); //使用当前配置的参数创建一个新的 DocumentBuilder 实例 DocumentBuilder builder=fac.newDocumentBuilder(); //获取document实例 string或者是file Document doc=builder.parse("test.xml");
(1) 解析XML文档目的我觉的是:1.得到某个节点的属性值
2.得到这个节点的值
(2)这样出来了一个问题如何得到你想要的节点:好像只有遍历了,如果有好的方法告诉我。
//根节点获取的方法 Element root=doc.getDocumentElement(); //得到所有同样的节点 不论是否是统一级别的 NodeList list=root.getElementsByTagName("employee"); //遍历得到想要的 属性、文本值 for(int i=0;i<list.getLength();i++){ Element e=(Element)list.item(i); System.out.println("nodeName:"+e.getNodeName()); System.out.println("attribute:"+e.getAttribute("name")); System.out.println("attribute:"+e.getAttribute("id")); System.out.println("attrTxt"+e.getElementsByTagName("id").item(0).getFirstChild().getNodeValue()); } //====================================== //统一级别的 NodeList list= root.getChildNodes(); System.out.println(list.getLength()); for(int i=0;i<list.getLength();i++) { //注意判断是否符合要求 if(list.item(i) instanceof Element) { Element e=(Element)list.item(i); System.out.println("nodeName:"+e.getNodeName()); System.out.println(e.getAttribute("name")); System.out.println("attribute:"+e.getAttribute("id")); System.out.println(e.getElementsByTagName("id").item(0).getFirstChild().getNodeValue()); } }
(3)因为在这样的方式中获取你想要的东西值,被分为了2样:1.属性
2.节点文本
//属性 Element.getAttribute(""); //文本 Element.getElementsByTagName("id").item(0).getFirstChild().getNodeValue();
最后:我觉得在取值这块非常不方便、获取特定节点这块也很不方便
三、Dom4j形式
Dom4j的用法:http://www.java3z.com/cwbwebhome/article/article2/2296.html?id=837
http://lavasoft.blog.51cto.com/62575/66953
xpath解析可能最喜欢这个了,准确定位很方便实用的。
实用的时候引用jar包:jaxen-1.1-beta-6
相关推荐
在这个例子中,我们将深入探讨如何使用DOM解析XML文件,以理解和掌握XML文档的结构,并进行数据提取、修改和创建。 首先,XML(Extensible Markup Language)是一种标记语言,用于存储和传输数据,具有自描述性和...
使用DOM解析XML文件的步骤如下: 1. 加载XML文件:首先,你需要创建一个`DocumentBuilderFactory`对象,然后通过`newDocumentBuilder()`方法得到一个`DocumentBuilder`实例。接着,调用`parse()`方法,传入XML文件...
本篇文章将深入探讨DOM解析XML文件在Android中的应用实例。 首先,DOM解析的基本思想是将整个XML文件加载到内存中,形成一个树形结构,即DOM树。这样做的优点是解析后的数据可以方便地进行任意位置的查找和修改,但...
在本文中,我们将深入探讨DOM解析XML文档的相关知识点,包括DOM的基本概念、解析过程、节点操作以及实际应用。 一、DOM基本概念 DOM是一种与平台和语言无关的接口,它允许程序和脚本动态地访问和更新文档的内容、...
Java DOM 解析 XML 实例是 Java 语言中常用的 XML 解析方法之一,使用 W3C 推荐的文档对象模型(Document Object Model,DOM)来解析 XML 文档。DOM 提供了一个树形结构的对象模型,通过遍历树形结构可以访问和操作 ...
本篇文章将深入探讨Android中的DOM解析XML文件,包括其基本原理、实现步骤和一些实用技巧。 ### 1. DOM解析的基本概念 DOM解析是一种将XML文件转换为内存中对象模型的方法。它将XML文档视为一棵树,其中每个元素、...
以一个实例来说明DOM解析XML文件的方法与过程。
在压缩包文件"复件 dom"中,可能包含了示例代码或教程,用于演示如何使用DOM4J和本地DOM解析XML文件。通过查看这些文件,你可以更深入地了解两种方法的具体实现,并在实际项目中选择合适的方式处理XML数据。 总结来...
使用DOM解析XML的基本步骤如下: 1. **导入必要的库**:在Java中,DOM解析功能主要由`javax.xml.parsers`和`org.w3c.dom`包提供。因此,首先需要在代码中导入这些库: ```java import javax.xml.parsers....
文档对象模型 节点和节点树 使用DOM加载XML文档 使用DOM访问、创建和修改节点
本文将详细讲解如何在Firefox下利用XML DOM解析XML文档。 首先,理解XML DOM的概念是至关重要的。XML DOM是一种W3C标准,它定义了一个统一的、平台和语言无关的接口,允许程序和脚本动态地访问和更新XML文档的结构...
本项目"DOM解析XML文件并实现通讯录"就是利用DOM解析器来处理XML数据,构建一个简单的通讯录应用。 首先,我们需要理解DOM解析的基本流程。当读取一个XML文件时,DOM解析器会一次性加载整个文件到内存中,然后创建...
JAVA DOM 解析 XML 文件过程详解 JAVA DOM 解析 XML 文件过程详解是指使用 JAVA 语言通过 DOM(Document Object Model)解析 XML 文件的过程。DOM 是一种应用程序接口(API),它将 XML 文档转换为一个树形结构,...
在Android中,我们通常使用`javax.xml.parsers.DocumentBuilderFactory`来创建解析器,并通过`DocumentBuilder`实例解析XML文件。下面是一个简单的示例: ```java DocumentBuilderFactory factory = ...
### DOM解析XML文件知识点 #### 一、DOM (Document Object Model) 概念 DOM(文档对象模型)是一种处理可扩展标记语言的标准方法。它提供了一组标准的对象接口,允许程序和脚本动态地访问和更新文档的内容、结构和...
DOM解析XML时,会将整个XML文档加载到内存中,形成一棵由节点构成的树形结构,每个节点代表XML文档的一部分,如元素、属性、文本等。 首先,了解DOM解析的基本步骤: 1. 加载XML文档:使用Java的`...
在"ParseXml"这个压缩包中,可能包含了示例代码,演示了如何使用JDOM、DOM4J和DOM解析XML文件。通过阅读和理解这些代码,你可以更好地掌握这些库的用法,提升处理XML文件的能力。记得实践是检验理论的最好方式,尝试...
标题“java_dom解析xml xml java”表明了本文档的主题是关于如何使用Java中的DOM技术来解析XML文件。 #### 描述分析 描述中提到这是一个适合新手入门的内容,并给出了一个简单的XML示例。该XML文档包含了一个`...
以下是一个使用Java DOM解析XML文件的示例代码片段: ```java import java.io.InputStream; import java.util.ArrayList; import java.util.List; import javax.xml.parsers.DocumentBuilder; import javax.xml....