`
Cb123456
  • 浏览: 65459 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

对XML进行Dom解析

    博客分类:
  • java
阅读更多

XML进行Dom解析:

 一、XML进行Dom解析:

 XML:可拓展的标记语言,主要用来存储数据.

 Dom解析:在内存建立和xml文件相对应的树形结构数据.核心是节点,本质是节点的集合,用Dom解析Xml优点是方便操作内存中树的节点,获取需要的数据.缺点是如果Xml很大,使用Dom就会很占用内存资源

 

 二、实现:

 1.创建一个Xml文档:

<?xml version="1.0" encoding="UTF-8"?>
<oracle>
    <user id="1">
       <name>scott</name>
       <pwd>scott</pwd>
    </user>

    <user id="2">
       <name>sys</name>
       <pwd>sys</pwd>
    </user>

    <user id="3">
       <name>system</name>
       <pwd>system</pwd>
    </user>
</oracle>

 

 2.开始解析:

package Dom解析XML;

import java.io.IOException;

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 DOMParser {

	public static void main(String[] args) {
		DOMParser cb = new DOMParser();
		
		// 1.创建DocumentBuilderFactory工厂对象
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		try {
			// 2.创建解析器DocumentBuilderFactory对象
			DocumentBuilder builder = factory.newDocumentBuilder();

			// 3.创建文档对象
			Document document = builder.parse("myXml\\cb.xml");

			// 4.获取文档的根元素节点,root节点
			Element element = document.getDocumentElement();
			System.out.println("获得的根目录的名称:" + element.getNodeName());

			NodeList userList = element.getElementsByTagName("user");
			System.out.println("获得的用户的个数:" + userList.getLength());

			// 5.遍历user,得到user的其他信息
			System.out.println("开始解析:---------------------------------");
			for (int i = 0; i < userList.getLength(); i++) {

				Element user = (Element) userList.item(i);
				// 对应的ID
				String userId = user.getAttribute("id");

				NodeList userChids = user.getChildNodes();
			    System.out.println("用户编号:"+userId);
				
			    //遍历当前用户下的所有子孩子
			    for (int j = 0; j < userChids.getLength(); j++) {
					
			    	//去除#text,主要是使用org.w3c.dom.Node进行解析的,
			    	//会将你的回车符号也作为一个节点的.
			    	if (userChids.item(j) instanceof Element) {
						System.out.println(userChids.item(j).getNodeName()
								+ "<>" + userChids.item(j).getTextContent());

					}

				}
			}
			
			cb.More(element);

		} catch (ParserConfigurationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SAXException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	
	public void More(Element element){

		System.out.println("以XML显示:-------------------");
		String getRootName=element.getNodeName();
		System.out.println("<?xml version="+"\""+1.0+"\""+ "encoding="+"\""+"UTF-8"+"\""+"?"+">");
		System.out.println(" <"+getRootName+">");
		NodeList userList = element.getElementsByTagName("user");
		//System.out.println("获得的用户的个数:" + userList.getLength());

		// 5.遍历user,得到user的其他信息
		//System.out.println("开始解析:---------------------------------");
		for (int i = 0; i < userList.getLength(); i++) {

			Element user = (Element) userList.item(i);
			// 对应的ID
			String userId = user.getAttribute("id");

			NodeList userChids = user.getChildNodes();
		    System.out.println("  <"+"user id="+"\""+userId+"\""+">");
			
		    //遍历当前用户下的所有子孩子
		    for (int j = 0; j < userChids.getLength(); j++) {
				
		    	//去除#text,主要是使用org.w3c.dom.Node进行解析的,
		    	//会将你的回车符号也作为一个节点的.
		    	if (userChids.item(j) instanceof Element) {
					//System.out.println(userChids.item(j).getNodeName()
							//+ "<>" + userChids.item(j).getTextContent());
		    		
		    		String getName =userChids.item(j).getNodeName();
		    		String getContent =userChids.item(j).getTextContent();
		    		System.out.println("   <"+getName+">"+getContent+"</"+getName+">");

				}

			}
		    
		    System.out.println("  </user>");
		}
		
		System.out.println(" </"+getRootName+">");
		
		
	}

}

 

 三、运行结果:

 1.控制台直接输出:

 
 

 

 2.控制台以XML形式输出:

 
 

 四、总结:

 1.使用org.w3c.dom.Node进行解析的,会将你的回车符号也作为一个节点的.

 2.输出字符串里面显示双引号,要在里面加上 "\""

 3.Dom解析Xml,通过根节点,得到根节点下的孩子,然后遍历孩子的List,得到其中一个孩子,在得到该孩子下的所有标签,通过getNodeName(),getTextContent()等方法得到具体的信息.

   

  • 大小: 12 KB
  • 大小: 14.8 KB
1
0
分享到:
评论

相关推荐

    DOM解析XML 创建XML

    DOM(Document Object Model)是处理XML文档的一种标准API,它将XML文档表示为一棵可操作的节点树,使得我们可以方便地对XML数据进行创建、查询、修改和删除。下面我们将深入探讨DOM解析XML以及如何创建XML。 DOM...

    Android Dom解析XML

    DOM解析方式允许开发者一次性加载整个XML文档到内存中,形成一个树形结构,便于遍历和操作。尽管对于大型XML文件,DOM解析可能因消耗大量内存而效率低下,但在处理小型XML文件时,DOM方法具有简洁和方便的优点。 ...

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

    "DOM_dom xml_dom xml java_dom解析xml_java解析xml"这部分描述了文件的主要内容,即关于DOM(Document Object Model)在XML解析中的应用,特别是用Java进行XML处理。 DOM是一种W3C标准,用于表示XML和HTML文档的树...

    android Dom解析xml文件

    DOM解析器将整个XML文档加载到内存中,形成一个树形结构,允许开发者通过节点操作来访问和修改XML内容。本篇文章将深入探讨Android中的DOM解析XML文件,包括其基本原理、实现步骤和一些实用技巧。 ### 1. DOM解析的...

    DOM解析XML文件例子

    总结来说,DOM解析XML文件是一种常见的数据处理技术,通过构建内存中的DOM树,能够方便地对XML文档进行查询、修改和操作。在JavaScript中,DOMParser是实现这一功能的关键工具。理解DOM解析的基本原理和方法,将有助...

    java dom 解析 xml 实例

    Java DOM 解析 XML 实例 Java DOM 解析 XML 实例是 Java 语言中常用的 XML 解析方法之一,...通过使用 DOM 解析 XML 文档,我们可以轻松地访问和操作 XML 文档中的元素和属性,从而实现了对 XML 文档的解析和处理。

    java_dom解析xml xml java

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

    XMLDOM解析器

    3. **结点操作**:DOM解析器支持对XML节点的各种操作,如创建、删除、复制和移动。例如,创建一个新的元素并添加到文档中: ```csharp XmlElement newElement = doc.CreateElement("newElement"); doc....

    DOM解析xml文件实例讲解

    本篇文章将深入探讨DOM解析XML文件在Android中的应用实例。 首先,DOM解析的基本思想是将整个XML文件加载到内存中,形成一个树形结构,即DOM树。这样做的优点是解析后的数据可以方便地进行任意位置的查找和修改,但...

    dom4j解析xml详解

    DOM4J的核心优势之一在于其丰富的接口体系,这些接口定义在`org.dom4j`包内,提供了对XML文档进行读写、查询、修改等操作的能力。 1. **Attribute**: 代表XML中的属性,可用于获取和设置属性值。 2. **Branch**: ...

    Asp xmldom解析XML

    通过以上步骤,我们可以利用ASP和XMLDOM对象对XML文件进行解析和操作。在实际应用中,这可以用于动态生成网页、数据交换、配置文件读取等多种场景。在处理XML时,一定要注意错误处理和资源管理,以确保程序的稳定性...

    XML解析之DOM

    在"XML解析之DOM"这一主题中,我们将深入探讨DOM解析器如何工作,以及如何通过DOM API获取XML文件中的信息。DOM解析器将整个XML文档加载到内存中,形成一个节点树,每个元素、属性、文本等内容都对应一个节点。这种...

    xml的Dom解析

    DOM(Document Object Model)是W3C组织推荐的一种解析XML的标准方法,它将XML文档视为一个树形结构,使得程序可以对XML文档进行读取、修改和操作。 在DOM解析中,XML文档被加载到内存中,形成一个对象模型,每个...

    DOM解析XML文件实例

    以一个实例来说明DOM解析XML文件的方法与过程。

    易语言模块 XMLDOM 解析 构造 获取 更改 添加 删除 遍历元素 格式化XML

    示例源码: ...什么是 XML DOM? XML DOM 是: 用于 XML 的标准对象模型 用于 XML 的标准编程接口 中立于平台和语言 W3C 标准 XML DOM 定义了所有 XML 元素...5、XMLDOM教程文档推荐参考:https://www.w3cschool.cn/xmldom

    android上使用DOM解析XML

    下面将详细介绍在Android中使用DOM解析XML的基本步骤和关键知识点。 1. **导入XML解析库** 在Android项目中,我们不需要额外导入库,因为DOM解析器是Java标准库的一部分,已经包含在Android SDK中。这意味着你可以...

    Xml文件dom解析

    在使用DOM解析XML文件时,以下是一些关键步骤: 1. **导入必要的库**: 在Java中,我们需要导入`javax.xml.parsers.DocumentBuilderFactory`和`javax.xml.parsers.DocumentBuilder`这两个库,它们提供了创建和解析...

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

    4. 修改元素:`createElement()`, `appendChild()`, `removeChild()`, `setAttribute()`等方法可以对XML进行修改。 5. 保存XML:修改后,使用`TransformerFactory`和`Transformer`将内存中的DOM树转换回XML字符串,...

    xmldom4j解析

    DOM解析会将整个XML文档加载到内存中形成一棵树形结构,方便访问任意节点,但内存消耗大;SAX解析则采用事件驱动,逐行读取XML,适合处理大型文档,但不支持随机访问。 三、DOM4J解析XML 1. 创建Document对象:使用...

Global site tag (gtag.js) - Google Analytics