用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API (Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object Module)称为DOM。Sun公司提供了Java API for XML Parsing(JAXP)接口来使用SAX和DOM,通过JAXP,我们可以使用任何与JAXP兼容的XML解析器。
JAXP接口包含了三个包:
(1)org.w3c.dom W3C推荐的用于XML标准规划文档对象模型的接口。
(2)org.xml.sax 用于对XML进行语法分析的事件驱动的XML简单API(SAX)
(3)javax.xml.parsers解析器工厂工具,程序员获得并配置特殊的特殊语法分析器。
package com.vianoz.xmlparse;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
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.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class XMLParse {
public XMLParse() {
DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder dombuilder = domfac.newDocumentBuilder();
InputStream is = new FileInputStream("WebRoot/WEB-INF/hell.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) {
String email = book.getAttributes().getNamedItem(
"email").getNodeValue();
System.out.println(email);
for (Node node = book.getFirstChild(); node != null; node = node
.getNextSibling()) {
if (node.getNodeType() == Node.ELEMENT_NODE) {
if (node.getNodeName().equals("name")) {
String name = node.getNodeValue();
String name1 = node.getFirstChild()
.getNodeValue();
System.out.println(name);
System.out.println(name1);
}
if (node.getNodeName().equals("price")) {
String price = node.getFirstChild()
.getNodeValue();
System.out.println(price);
}
}
}
}
}
}
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args)
{
new XMLParse();
}
}
分享到:
相关推荐
使用JAXP解析XML文档的步骤大致如下: 1. 加载解析器工厂:`javax.xml.parsers.DocumentBuilderFactory`或`javax.xml.parsers.SAXParserFactory`。 2. 创建解析器:通过工厂的`newDocumentBuilder()`或`newSAXParser...
Java DOM 解析 XML 实例是 Java 语言中常用的 XML 解析方法之一,使用 W3C 推荐的文档对象模型(Document Object Model,DOM)来解析 XML 文档。DOM 提供了一个树形结构的对象模型,通过遍历树形结构可以访问和操作 ...
本文将深入探讨XML的解析方式之一——JAXP(Java API for XML Processing),并提供一个简单的JAXP解析XML项目的概述。 ### JAXP简介 JAXP是Java平台上的标准API,它提供了处理XML的两种主要方法:解析和转换。在...
在上述代码中,我们使用了JAXP(Java API for XML Processing)中的`DocumentBuilderFactory`和`DocumentBuilder`来创建并解析XML文件。`getElementsByTagName()`用于获取指定标签的节点列表,然后通过`item()`方法...
JAXP(Java API for XML Processing)是Java平台上的XML处理标准,它提供了包括SAX在内的三种解析方式,即DOM(Document Object Model)、SAX和XSLT。本篇文章将深入探讨如何使用JAXP的SAX解析器来读取XML内容。 ...
Java解析XML的四种经典方法主要涵盖DOM、SAX、StAX和JDOM这四种方式,每种方法都有其独特的优势和适用场景。 1)DOM(JAXP Crimson 解析器) DOM(Document Object Model)是W3C推荐的一种XML解析标准,它将XML...
在 Java 中使用 DOM 方式解析 XML 文件需要使用 JAXP(Java API for XML Processing),首先需要创建一个解析器工厂,然后使用工厂创建一个具体的解析器对象。然后,使用解析器对象来解析 XML 文件,得到一个 ...
通常,解析XML可能需要如`jaxp-1.3.jar`(Java API for XML Processing)、`xml-apis.jar`(XML API)、`sax.jar`(SAX解析器)或`dom4j.jar`(DOM4J库)等库。然而,提供的文件列表`Global.asax`、`gui.ascx`、`...
本文将详细介绍如何解析XML并生成对应的Java类,以及使用工具助手来简化这一过程。 一、XML解析原理 1. DOM解析:DOM(Document Object Model)模型将XML文档视为一个树形结构,通过创建一个内存中的文档对象模型...
Java 中四种 XML 解析技术 XML 是一种广泛应用于数据存储和交换的标记语言,而 Java 是一种广泛应用于软件开发的编程语言。因此,在 Java 中解析 XML 文件是一个非常重要的任务。目前,Java 中有多种 XML 解析技术...
标题"Jaxp_xml.rar_J2ME程序_j2me_j2me_xml_j2me网络"表明这个压缩包包含了一个示例,演示如何使用JAXP(Java API for XML Processing)在J2ME环境中解析XML文件。JAXP是Java平台上的一个标准接口,用于处理XML文档...
1. **DOM解析**:DOM(Document Object Model)是W3C推荐的一种解析XML的标准方式,它将XML文档映射为一个树形结构,开发者可以通过API遍历和修改这个结构。 2. **SAX解析**:SAX(Simple API for XML)是另一种...
// 创建解析器并开始解析XML文件 public static void main(String[] args) { try { ConfigParser parser = new ConfigParser(); SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser ...
在Java中解析XML,除了SAX和DOM这两种基础方式之外,还有基于这两种技术的高级库和框架,比如JAXP、JDOM、DOM4J和JAXB等。 - JAXP(Java API for XML Processing): JAXP是Java提供的一个XML处理API,它允许...
Java解析XML技术详解: 在信息技术领域,XML(Extensible Markup Language,可扩展标记语言)是一种被广泛使用的标记语言,用于存储和传输数据。它与HTML相似,也是一种标记语言,但是HTML用于网页的格式化,而XML...
### Java解析XML文件:DOM与SAX解析技术详解 #### DOM解析:JAXP与Crimson解析器 DOM(Document Object Model),即文档对象模型,是W3C为XML文档定义的一种标准接口,用于在各种编程语言中操作XML文档。DOM将XML...
《深入解析JAXP:Sun的Java API for XML解析》 在探讨JAXP(Java API for XML Processing)这一主题时,我们需首先明确其在Java与XML领域中的定位与价值。JAXP并非旨在革新XML处理的方式,也不提供额外的语法分析...
"java解析xml文档的常用方法" Java 解析 XML 文档的常用方法有四种:DOM、SAX、JDOM 和 DOM4J。下面对这四种方法进行详细的介绍: 1. 使用 DOM(JAXP Crimson 解析器) DOM(Document Object Model)是一种以层次...
### Java中使用DOM解析XML详解 #### 一、引言 在Java开发中,解析XML是一种常见的需求。XML(Extensible Markup Language,可扩展标记语言)作为一种数据存储和传输的标准格式,在不同系统间的数据交换中扮演着...
- **SAXParser**:提供了一种基于事件的解析XML文档的方式,通常用于处理大文件或实时流数据。 - **DocumentBuilder**:用于构建DOM树,便于后续对文档的随机访问和修改。 ##### org.w3c.dom - 定义了DOM中的一系列...