`
lijunaccp
  • 浏览: 159071 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

DOM解析XML综合例子

    博客分类:
  • XML
阅读更多
1.students.xml
<?xml version="1.0" encoding="UTF-8"?> 
<学生名册>  
<!-- 这是一个注释 --> 
    <学生 学号="1">   
        <姓名>张三</姓名>   
        <性别>男</性别>   
        <年龄>20</年龄>   
        <!-- 这是一个注释2 --> 
    </学生>   
    <学生 学号="2">   
        <姓名>李四</姓名>   
        <性别>女</性别>   
        <年龄>19</年龄>   
    </学生>   
    <学生 学号="3">   
        <姓名>王五</姓名>   
        <性别>男</性别>   
        <年龄>21</年龄>   
    </学生>   
</学生名册> 


2.DomParse.java
package com.lijun.xml.dom;

import java.io.File;

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

import org.w3c.dom.Attr;
import org.w3c.dom.Comment;
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;

/**
 * 使用递归解析任意的XML文档并输出到命令行上
 * @author LIJUN
 *
 */
public class DomParse {

	public static void main(String[] args) throws Exception {
		//获得解析器工厂
		DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
		//获得解析器
		DocumentBuilder builder=factory.newDocumentBuilder();
		//获得根节点
		Document document=builder.parse(new File("students.xml"));
		//获得根元素节点
		Element root=document.getDocumentElement();
		
		parseElement(root);
	}
	
	/**
	 * 解析元素
	 * @param element 元素
	 */
	private static void parseElement(Element element){
		//获得元素标签名
		String tagName=element.getNodeName();
		System.out.print("<"+tagName);
		//获得元素的子节点
		NodeList childNodes=element.getChildNodes();
		//获得元素属性
		NamedNodeMap attributes=element.getAttributes();
		
		if(null!=attributes){
			for(int i=0;i<attributes.getLength();i++){
				Attr attr=(Attr)attributes.item(i);
				String attrName=attr.getName();
				String attrValue=attr.getValue();
				System.out.print(" "+attrName+"=\""+attrValue+"\"");
			}
		}
		
		System.out.print(">");
		
		for(int i=0;i<childNodes.getLength();i++){
			Node node=childNodes.item(i);
			//获得节点类型
			short nodeType=node.getNodeType();
			if(nodeType==Node.ELEMENT_NODE){
				//是元素,继续递归
				parseElement((Element)node);
			}else if(nodeType==Node.TEXT_NODE){
				//是文本,递归出口
				System.out.print(node.getNodeValue());
			}else if(nodeType==Node.COMMENT_NODE){
				//是注释
				System.out.print("<!--");
				//获得注释内容
				Comment comment=(Comment)node;
				String data=comment.getData();
				System.out.print(data);
				System.out.print("-->");
			}
		}
		
		System.out.print("</"+tagName+">");
	}

}
分享到:
评论

相关推荐

    DOM解析XML文件例子

    在这个例子中,我们将深入探讨如何使用DOM解析XML文件,以理解和掌握XML文档的结构,并进行数据提取、修改和创建。 首先,XML(Extensible Markup Language)是一种标记语言,用于存储和传输数据,具有自描述性和...

    DOM解析XML应用实例(入门经典案例)

    本教程“DOM解析XML应用实例(入门经典案例)”旨在帮助初学者快速掌握DOM解析XML的基本方法和实践技巧。 XML(Extensible Markup Language)是一种标记语言,常用于存储和传输数据,特别是在Web应用程序中。它具有...

    Android Dom解析XML

    总结来说,Android中使用DOM解析XML是一种常见且直观的方式,适合处理小规模的数据。结合ButterKnife库,可以方便地将解析结果与UI组件进行绑定,提高代码的可读性和维护性。但请注意,对于大文件,考虑使用SAX或者...

    DOM解析xml一个demo实例

    很实用的一个dom解析xml实例,很容易上手

    DOM解析XML 创建XML

    下面我们将深入探讨DOM解析XML以及如何创建XML。 DOM解析XML的过程分为以下几个步骤: 1. **加载XML文档**:首先,我们需要通过DOM解析器加载XML文档。在JavaScript中,可以使用`DOMParser`对象的`parseFromString...

    JAVA DOM解析XML文件过程详解

    JAVA DOM 解析 XML 文件过程详解 JAVA DOM 解析 XML 文件过程详解是指使用 JAVA 语言通过 DOM(Document Object Model)解析 XML 文件的过程。DOM 是一种应用程序接口(API),它将 XML 文档转换为一个树形结构,...

    java dom4j 解析xml的例子,可用

    1. **DOM4J解析XML**:DOM4J通过创建一个可操作的树形结构来表示XML文档,这棵树称为文档对象模型。解析XML时,DOM4J首先读取XML文件并构建一个节点结构,然后你可以通过API遍历和修改这个结构。例如,你可以通过...

    xml解析 dom方式 例子和讲解

    1. **导入库**:使用DOM解析XML时,我们需要导入javax.xml.parsers和org.w3c.dom相关的库。例如: ```java import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; ...

    XML解析之DOM

    1. 加载XML:使用DOM解析器如Java的`DocumentBuilderFactory`创建`DocumentBuilder`,然后用它来解析XML文件,得到`Document`对象。 2. 获取根节点:`Document`对象的`getDocumentElement()`方法返回XML文档的根...

    XML DWR 解析dom 解析xml Ajax 杂乱的例子

    解析XML文档,通常有两种方法:DOM解析和SAX解析。DOM解析会将整个XML文档加载到内存中,形成一棵DOM树,允许随机访问任何节点。而SAX解析则是一种事件驱动的解析方式,逐行读取文档,只在遇到特定事件(如开始元素...

    java中dom解析xml

    在给定的文件"DOM解析XML1.txt"和"DOM解析XML2.txt"中,可能包含了关于如何使用DOM解析XML的详细示例代码或进一步的解析技巧。如果需要深入理解或解决问题,建议查看这些文件的内容。 总结起来,Java中的DOM解析XML...

    java中用dom解析xml的经典入门级文档

    ### Java中使用DOM解析XML详解 #### 一、引言 在Java开发中,解析XML是一种常见的需求。XML(Extensible Markup Language,可扩展标记语言)作为一种数据存储和传输的标准格式,在不同系统间的数据交换中扮演着...

    解析XML文件例子

    以下是一些关于解析XML文件的知识点: 1. XML结构: - 根元素:XML文档必须有一个根元素,所有其他元素都包含在这个根元素内。 - 元素:XML中的基本单位,用尖括号 `&lt; &gt;` 包围,如 `&lt;book&gt;`。 - 属性:元素可以...

    dom4j 解析xml例子

    在这个“dom4j解析xml例子”中,我们将深入探讨DOM4J如何帮助开发者在Java环境中有效地处理XML数据。 首先,我们需要了解XML(Extensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置...

    SAX,PULL,DOM解析XML

    DOM解析器适合处理小型或中型XML文件,因为它将整个文档加载到内存中,对于大文件可能会导致内存消耗过大。DOM的优点在于提供了一种直观的方式来操作XML,但缺点是其内存开销和性能影响。 下面分别介绍这三个解析...

    Dom4j例子,可以解析大部分的XML

    **Dom4j详解:解析XML的强大工具** Dom4j是一个开放源码的Java库,它提供了灵活且功能强大的API来处理XML文档。在Java世界中,XML作为一种数据交换格式广泛应用于各种应用程序,如配置文件、数据传输、文档存储等。...

    JAVA_dom解析xml

    下面是一个简单的DOM解析XML文件的例子: ```java import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.Document; import org.w3c.dom.NodeList; ...

    JSP基于dom解析xml实例详解.docx

    本实例主要讲解如何在JSP中利用DOM解析XML文件,包括XML文件的读取、数据匹配以及数据写入。 首先,我们需要创建一个简单的User实体类,如`User`,包含姓名(name)、密码(pwd)和电子邮件(email)属性及相应的...

    java dom4j解析xml

    - 以下是一个简单的DOM4J解析XML的例子: ```java import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; public class Dom4jExample { public static void main(String...

    java解析xml例子

    以下是一个简单的DOM解析XML的例子: ```java import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.Document; import org.w3c.dom.NodeList; import ...

Global site tag (gtag.js) - Google Analytics