(转:http://blog.163.com/liucy_18/blog/static/53192906201062605514991/)
import java.io.File;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Element;
public class Xmltest {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
//从 XML 文档获取 DOM 文档实例。使用此类,应用程序员可以从 XML 获取一个Document
// 创建解析工厂指定DocumentBuilder
DocumentBuilder db=DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document=db.parse(new File("F:\\111.xml"));//把文件解析成DOCUMENT类型
// Element root = document.getDocumentElement(); //得到Document的根(节点名:book)
// System.out.println("根节点标记名:" + root.getTagName());
System.out.println("*****下面遍历XML元素*****");
Element root=document.getDocumentElement() ;
String rootName=root.getNodeName();
System.out.println("XML文件根节点的名字:"+rootName);
NodeList list=root.getElementsByTagName_r("dbstore");//获得page元素
//NodeList list=document.getElementsByTagName_r("dbstore");//获得page元素这个和上面一行效果一样
// System.out.println(list.getLength());
showElem(list);
}
public static void showElem(NodeList nl){
for(int i=0;i<nl.getLength();i++){
Node n=nl.item(i);//得到父节点
if(n.hasChildNodes())
{
NamedNodeMap attributes=n.getAttributes(); //遍历节点所有属性如<dbstore single="false" att="tta">
// System.out.println(attributes.getLength());
for(int j=0;j<attributes.getLength();j++)
{
Node attribute=attributes.item(j);
//得到属性名
String attributeName=attribute.getNodeName();
System.out.println("属性名:"+attributeName);
//得到属性值
String attributeValue=attribute.getNodeValue();
System.out.println("属性值:"+attributeValue);
}//打印出结果属性名:att属性值:tta属性名:single属性值:false
}
//子节点
NodeList childList=n.getChildNodes();
for(int x=0;x<childList.getLength();x++)
{
Node childNode=childList.item(x);
//判断取出的值是否属于Element元素,目的是过滤掉
if(childNode instanceof Element)
{
//得到子节点的名字
String childNodeName=childNode.getNodeName();
System.out.println("子节点名:"+childNodeName);
//得到子节点的值
String childNodeValue=childNode.getTextContent();
System.out.println("子节点值:"+childNodeValue);
}
} showElem(n.getChildNodes());//递归
}
}
}
*************************************xml如下:
<?xml version="1.0" encoding="gb2312" ?>
<test>
<dbstore single="false" att="tta">
<className dd="00000">com.DBImpl</className>
<methodName dd="222">setHashMap</methodName>
<methodArgsType>java.util.HashMap</methodArgsType>
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://localhost:3306/fengzi</url>
<username>root</username>
<password>root</password>
<batchSize>1000</batchSize>
</dbstore>
<dbstore single="1" att="1">
<className>1</className>
<methodName>1</methodName>
<methodArgsType>j1</methodArgsType>
<driver>1</driver>
<url>1</url>
<username>1</username>
<password>1t</password>
<batchSize>1</batchSize>
</dbstore>
</test>
*********************************************输出结果:
*****下面遍历XML元素*****
XML文件根节点的名字:test
属性名:att
属性值:tta
属性名:single
属性值:false
子节点名:className
子节点值:com.DBImpl
子节点名:methodName
子节点值:setHashMap
子节点名:methodArgsType
子节点值:java.util.HashMap
子节点名:driver
子节点值:com.mysql.jdbc.Driver
子节点名:url
子节点值:jdbc:mysql://localhost:3306/fengzi
子节点名:username
子节点值:root
子节点名:password
子节点值:root
子节点名:batchSize
子节点值:1000
属性名:dd
属性值:00000
属性名:dd
属性值:222
属性名:att
属性值:1
属性名:single
属性值:1
子节点名:className
子节点值:1
子节点名:methodName
子节点值:1
子节点名:methodArgsType
子节点值:j1
子节点名:driver
子节点值:1
子节点名:url
子节点值:1
子节点名:username
子节点值:1
子节点名:password
子节点值:1t
子节点名:batchSize
子节点值:1
分享到:
相关推荐
JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML
在Java中,解析XML文件是常见的任务,主要用于读取、修改或生成XML文档。本篇将深入探讨两种主要的XML解析技术:DOM(Document Object Model)和SAX(Simple API for XML)。 DOM解析器将整个XML文档加载到内存中,...
Java作为一种广泛使用的后端编程语言,提供了多种方式来解析XML文档,使得处理多级嵌套的数据变得可能。本文将详细讲解如何在Java中解析XML,特别是针对多级结构的情况。 首先,Java提供了两种主要的API来处理XML:...
SAX解析XML文件的实例。一个项目同时用dom解析和sax解析xml文件貌似会报错,项目框架建一直是用sax和dom4j解析xml文件的。当我用dom解析xml文件。导入包后就报错识别不了xml文件的编码格式。于是做了一个sax解析xml...
### Java解析XML字符串 在给定的代码示例中,我们看到了如何使用JDOM库来解析一个XML字符串,并对其进行操作。下面我们将详细解析这个过程: 1. **初始化XML源**:首先,将XML字符串转化为`StringReader`对象,这...
Java DOM 解析 XML 实例 Java DOM 解析 XML 实例是 Java 语言中常用的 XML 解析方法之一,使用 W3C 推荐的文档对象模型(Document Object Model,DOM)来解析 XML 文档。DOM 提供了一个树形结构的对象模型,通过...
Java解析XML文件是Java开发中常见的一项任务,XML(eXtensible Markup Language)作为一种结构化数据存储格式,被广泛用于数据交换、配置文件和Web服务等场景。本篇文章将详细探讨Java如何利用DOM4J库来解析XML文件...
本篇文章将深入探讨如何在Java中解析XML,以帮助你理解和实践相关知识。 一、DOM解析器 DOM(Document Object Model)解析器是Java中的一种常用方法,它将整个XML文档加载到内存中,形成一个树形结构。以下是一个...
Java解析XML的四种经典方法是XML处理中常用的技术,它们分别是DOM、SAX、StAX和JDOM。每种方法都有其独特的特性和适用场景,下面将详细介绍这四种方法。 1. DOM(Document Object Model)解析: DOM是W3C制定的一种...
本篇将详细介绍如何使用Java解析XML,将数据存入MongoDB,并返回org.json JSON包。 首先,解析XML通常有两种主要方法:DOM(Document Object Model)和SAX(Simple API for XML)。DOM一次性加载整个XML文档到内存...
### Java解析XML——DOM详解 #### 一、DOM解析概念 **Document Object Model (DOM)**是一种平台和语言中立的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。DOM最初是为HTML设计的,但后来也被...
**DOM4J解析XML实例详解** 在Java编程中,处理XML文档是一项常见的任务。DOM4J是一个非常流行的、强大的Java XML API,它提供了灵活且高效的方式来解析、创建、修改XML文档。本文将深入探讨如何使用DOM4J进行XML...
标题"读取RSS-SAX解析XML实例(java版)"所涉及的知识点主要集中在两个方面:一是如何读取RSS(Really Simple Syndication)数据,二是使用SAX解析XML文件。 RSS是一种用于发布新闻、博客和其他定期更新内容的格式...
在这个实例中,我们将深入探讨如何使用DOM4J解析XML文件,并通过`Dom4jTest1.java`这个示例程序来理解其工作原理。 首先,我们需要了解XML(Extensible Markup Language)是一种标记语言,常用于存储和传输数据。...
本文将深入探讨四个使用Java解析和生成Excel及XML的实例,旨在帮助开发者掌握相关技能。 实例一:解析Excel文件 使用Apache POI库是Java中解析Excel文件的常见方式。POI提供了HSSF(旧版Excel .xls格式)和XSSF(新...
在IT行业中,调用Web服务并解析XML是常见的任务,特别是在Java开发中。Web服务,尤其是基于SOAP(Simple Object Access Protocol)的,提供了一种标准的跨平台、跨语言的数据交换方式。本教程将深入讲解如何在Java...
### Android解析XML实例详解 #### 一、XML数据结构与示例 在Android开发中,经常需要处理XML格式的数据。本篇文章将通过一个具体的例子来详细介绍如何在Android应用中解析XML文件。 首先,我们来看一下这个例子中...
**XStream解析XML实例** 在Java开发中,处理XML数据是一项常见的任务,XStream库提供了一个简单而强大的方式来将Java对象序列化为XML,以及从XML反序列化回Java对象。这个实例将深入探讨如何使用XStream进行XML操作...
在这个实例中,JAXP的`javax.xml.parsers.DocumentBuilderFactory`和`DocumentBuilder`用于解析XML文件,构建DOM树。 4. **Bean类**:在Java中,Bean是一种符合特定设计模式的简单Java对象,通常用于数据封装。在...
### JAVA解析XML知识点详解 #### 一、XML与JAVA的关系 **XML (eXtensible Markup Language)** 是一种用于标记电子文件使其具有结构性的标记语言。由于其平台无关性、语言无关性和系统的无关性,XML成为了数据交换...