import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
/**
* 文件对象模型(Document Object Model,DOM)解析器将读入的XML文档转换成树结构
*
* @author hphua
*
*/
public class Xml_First {
public static void main(String[] args) {
//从DocumentBuilderFactory中得到DocumentBuilder对象
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder builder = factory.newDocumentBuilder();
//创建一个文件
File f = new File("d:\\web.xml");
try {
//从文件中读取文档
org.w3c.dom.Document doc = builder.parse(f);
//调用getDocumentElement()方法分析文档的内容,将返回根元素
Element root = doc.getDocumentElement();
System.out.println("元素名称:"+root.getTagName());
System.out.println(root.getNodeName()); /** output:configuration */
System.out.println("属性名为:xmlns:xsi的值:"+root.getAttribute("xmlns:xsi"));
//得到该元素的子元素
NodeList child = root.getChildNodes();
Node firstChild = root.getFirstChild();
System.out.println("firstChild="+firstChild.getNodeName());
Node lastChild = root.getLastChild();
System.out.println("lastChild="+lastChild.getNodeName());
/*
Node nextSibling = root.getNextSibling();
System.out.println("nextSibling="+nextSibling);*/
System.out.println("子元素个数:"+child.getLength());
//枚举所有子元素
Node chi =null;
for (int i = 0; i < child.getLength(); i++) {
chi = child.item(i);
//此节点的绝对基 URI;如果实现不能获得绝对 URI,则为 null。
System.out.println(chi.getBaseURI());
//此属性返回此节点及其后代的文本内容。
String text = chi.getTextContent();
System.out.println("text="+text);
//返回此节点限定名称的本地部分
System.out.println("getLocalName="+chi.getLocalName());
//此节点的名称,取决于其类型
System.out.println(chi.getNodeName());
//包含此节点的属性的 NamedNodeMap(如果它是 Element);否则为 null。
System.out.println("getAttributes="+chi.getAttributes());
}
System.out.println("//------------------------------------------------------//");
/**
* 获得根节点的所有属性值与名称.
*/
NamedNodeMap attributes = root.getAttributes();
for(int i = 0;i<attributes.getLength();i++){
Node attribute = attributes.item(i);
String name =attribute.getNodeName();
String value =attribute.getNodeValue();
System.out.println("NodeName="+name+",NodeValue="+value);
}
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
}
}
web.xml代码如下:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="config.xsd">
<font chr="hphua">
<name color="blue">hpjianhua</name>
<size>30</size>
</font>
</configuration>
分享到:
相关推荐
在C#中,XML DOM解析器主要通过`System.Xml`命名空间中的类来实现,如`XmlDocument`、`XmlNode`等。下面我们将深入探讨这些知识点: 1. **XMLDocument类**:这是DOM解析的核心,它代表整个XML文档。你可以使用`Xml...
1. **加载XML文档**:首先,我们需要通过DOM解析器加载XML文档。在JavaScript中,可以使用`DOMParser`对象的`parseFromString`方法来完成此操作。例如: ```javascript var parser = new DOMParser(); var xmlDoc...
DOM解析器读取XML文件并构建一个内存中的节点树,其中每个元素、属性、文本等都对应一个节点。在Android中,我们通常使用`javax.xml.parsers.DocumentBuilderFactory`来创建解析器,并通过`DocumentBuilder`实例解析...
DOM解析器将整个XML文档加载到内存中,形成一个树形结构,允许开发者通过节点操作来访问和修改XML内容。本篇文章将深入探讨Android中的DOM解析XML文件,包括其基本原理、实现步骤和一些实用技巧。 ### 1. DOM解析的...
DOM解析器读取整个XML文档到内存中,构建一棵由节点组成的树,这些节点代表了XML文档的所有元素、属性、文本和其他结构。 在Java中,`org.w3c.dom`包提供了DOM解析XML的基础接口和类。以下是DOM解析XML的基本步骤:...
DOM 解析器将 XML 文档转换为树形结构,允许开发人员在树中寻找特定信息。DOM 解析器的优点是: * 允许修改 XML 文档的结构和内容 * 可以在任何时候在树中上下导航 * 使用起来相对简单 但是,DOM 解析器也存在一些...
在Java平台上,DOM解析器提供了对XML文档的全面和结构化的访问。 使用DOM解析XML的基本步骤如下: 1. **导入必要的库**:在Java中,DOM解析功能主要由`javax.xml.parsers`和`org.w3c.dom`包提供。因此,首先需要在...
- DOM解析器负责将XML文档转换为DOM树结构,以便于程序可以访问和操作文档中的各个元素。 - 通常使用`DocumentBuilderFactory`和`DocumentBuilder`两个类来创建DOM解析器。 2. **DOM树** - DOM树是XML文档的一种...
DOM解析器将整个XML文档加载到内存中,构建一个树形结构,称为DOM树。这种解析方式允许开发者通过节点名称快速访问和修改XML文档的任何部分。在提供的代码示例中,首先创建`DocumentBuilderFactory`工厂类的实例,...
DOM解析器则将XML文档转化为内存中的树形结构,称为DOM树,每个XML元素对应树中的一个节点。 在JavaScript中,我们可以使用内置的`document.implementation.createDocument()`方法创建DOM解析器。以下是一个简单的...
在"XML解析之DOM"这一主题中,我们将深入探讨DOM解析器如何工作,以及如何通过DOM API获取XML文件中的信息。DOM解析器将整个XML文档加载到内存中,形成一个节点树,每个元素、属性、文本等内容都对应一个节点。这种...
理解DOM解析器如何解析XML、构建DOM树以及执行节点操作的细节,有助于提高代码性能。 8. **工具支持**:许多IDE和文本编辑器提供了XML和DOM的辅助工具,如自动格式化、错误检查、XPath查询等。这些工具可以帮助...
通过 JAXP,我们可以使用任何与 JAXP 兼容的 XML 解析器。 JAXP 接口包含了三个包: 1. org.w3c.dom:W3C 推荐的用于 XML 标准规划文档对象模型的接口。 2. org.xml.sax:用于对 XML 进行语法分析的事件驱动的 XML...
在“Xml之DOM解析--学生成绩管理系统”中,我们主要探讨如何使用DOM解析器来读取、处理和更新XML文件,以实现一个简单的学生成绩管理系统的功能。首先,我们需要理解DOM解析的基本流程: 1. **加载XML文档**:使用...
本篇文章将深入探讨DOM解析XML文件在Android中的应用实例。 首先,DOM解析的基本思想是将整个XML文件加载到内存中,形成一个树形结构,即DOM树。这样做的优点是解析后的数据可以方便地进行任意位置的查找和修改,但...
xml的ppt文档,简要介绍dom解析器
在给定的标题“DOM解析器 动态修改当前页面”中,核心概念是利用DOM解析器来对网页进行实时的分析与修改。 DOM解析器的工作原理是将网页内容解析成一个树形结构,称为DOM树,每个节点代表了HTML元素、属性、文本或...
7. **DocumentType**: 用于定义XML的`DOCTYPE`声明,帮助解析器理解文档的DTD。 8. **Element**: 表示XML元素,提供了一系列方法来访问和修改元素及其属性和子元素。 9. **ElementHandler**: 为`Element`对象定义...