所有现代浏览器都有读取和操作 XML 的内建 XML 解析器。解析器把 XML 载入内存,然后把它转换为可通过 JavaScript 访问的 XML DOM 对象
解析器读入整个文档,然后构建一个驻留内存的树结构,使用 DOM 接口来操作这个树结构。
优点:整个文档树在内存中,便于操作;支持删除、修改、重新排列等多种功能;
缺点:将整个文档调入内存(包括无用的节点),浪费时间和空间;使用场合:一旦解析了文档还需多次访问这些数据;硬件资源充足(内存、CPU)
生成Xml文档
解析器通过在内存中建立和XML结构相对应的树状结构数据,使得应用程序可以方便地获得XML文件中的数据。
调用newDocument()可得到一个Document节点
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document= builder.newDocument();
构建Document内容
Element root = this.document.createElement("employees");
this.document.appendChild(root);
Element employe = this.document.createElement("employe");
Element name = this.document.createElement("name");
name.appendChild(this.document.createTextNode("yues"));
Element age = this.document.createElement("age");
age.appendChild(this.document.createTextNode("26"));
Element sex = this.document.createElement("sex");
sex.appendChild(this.document.createTextNode("Man"));
employe.appendChild(name);
employe.appendChild(age);
employe.appendChild(sex);
root.appendChild(employe);
使用 Transformer对象将一个Document节点变换为一个XML文件
TransformerFactory transFactory=TransformerFactory. newInstance()
Transformer transformer=transFactory. newTransformer();
将被变换的Document对象封装到一个DOMSource对象中
DOMSource domSource=new DOMSource(document);
将变换得到XML文件对象封装到一个StreamResult对象中
File file=new File("newXML.xml");
FileOutputStream out=new FileOutputStream(file);
StreamResult xmlResult=new StreamResult(out);
对象transformer 调用transform方法实施变换
transformer.transform(domSource, xmlResult);
用于修改Document的常用方法
Node接口是Document的父接口,提供了许多用来修改、增加和删除节点的方法:
Node appendChild(Node newChild) 节点调用该方法可以向当前节点增加一个新的子节点,并返回这个新节点。
Node removeChild(Node oldChild) throws DOMException 节点调用该方法删除参数指定的子节点,并返回被删除的子节点。
Node replaceChild(Node newChild, Node oldChild) 将子节点列表中的子节点 oldChild 替换为 newChild,并返回 oldChild 节点。
解析Xml文档
public void paserXml(String fileName) {
// TODO Auto-generated method stub
try {
this.document = builder.parse(new FileInputStream(new File(fileName)));
NodeList employees = document.getChildNodes();
for(int i=0;i<employees.getLength();i++){
Node employe = employees.item(i);
System.out.println("第"+(i+1)+"个Employee");
NodeList employeAttrs = employe.getChildNodes();
for(int j=0;j<employeAttrs.getLength();j++){
Node employeAttr = employeAttrs.item(j);
NodeList attrInfo = employeAttr.getChildNodes();
for(int k=0;k<attrInfo.getLength();k++){
Node info = attrInfo.item(k);
if(info.getNodeType()==Node.ELEMENT_NODE){
System.out.println(info.getNodeName()+":"+info.getTextContent());
}
}
}
}
} catch (FileNotFoundException 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();
}
}
分享到:
相关推荐
DOMParser接口提供了解析XML字符串并创建DOM文档的方法,以便于开发者可以使用DOM API来查询、修改或操作XML数据。 以下是对"DOMParser解析XML"这一主题的详细说明: 1. **DOMParser的基本使用**: 使用DOMParser...
使用DOM解析XML文件的步骤如下: 1. 加载XML文件:首先,你需要创建一个`DocumentBuilderFactory`对象,然后通过`newDocumentBuilder()`方法得到一个`DocumentBuilder`实例。接着,调用`parse()`方法,传入XML文件...
本文将深入探讨如何使用SAX、DOM和Pull解析器解析XML文件,以及如何生成XML文件。我们将同时展示Java和Kotlin两种语言的实现方法。 一、SAX解析XML文件 SAX(Simple API for XML)是一种事件驱动的解析器,它不会一...
**dom4J生成和解析XML文件** DOM4J是一个强大的Java XML API,它不仅提供了DOM、SAX和JDOM等接口的实现,还提供了一种更简单、更灵活的方式来处理XML文档。这篇博客()可能详细介绍了如何使用DOM4J来生成和解析XML...
1. **解析XML**:DOM4J支持使用DOM、SAX或StAX解析器读取XML文件,其中DOM是将整个XML文档加载到内存中,适用于小型文件;SAX是事件驱动的解析,适用于大文件;而StAX则提供了一种更高效的方式,通过迭代器逐个处理...
5. **事件驱动解析(SAX)**:除了传统的DOM解析外,DOM4J还支持SAX解析器,这种解析方式适用于处理大型XML文件,因为它不需要一次性加载整个文档到内存。 6. **Namespace支持**:DOM4J提供了对XML命名空间的全面...
### DOM4J解析XML详解 #### 一、DOM4J简介与特性 DOM4J是一个由dom4j.org开发的开源XML解析包,专为Java平台设计,它不仅支持DOM、SAX和JAXP标准,还巧妙地融入了Java集合框架,使其成为Java开发者在处理XML数据时...
"Dom4j 生成 XML 和解析 XML" Dom4j 是一个 Java 库,用于处理 XML 文档。它提供了生成和解析 XML 文档的功能。在本文中,我们将学习如何使用 Dom4j 生成 XML 文档和解析 XML 文档。 生成 XML 文档 使用 Dom4j ...
使用DOM方法读取XML文件,需要创建DocumentBuilderFactory对象,获取DocumentBuilder对象,然后解析XML文件得到Document对象。最后,使用Document对象的getElementsByTagName方法获取指定标签的节点列表,并遍历节点...
作为一名 IT 行业大师,我将从给定的文件中生成相关知识点,涵盖 JS 解析 XML 文件的各种方面。 JS 解析 XML 文件的必要性 在当前的 web 开发中,XML 文件广泛应用于数据交换和存储。因此,如何使用 JavaScript ...
### DOM动态生成与XML DOM的使用 #### 一、引言 随着XML(Extensible Markup Language,可扩展标记语言)在网络开发中的广泛应用,其复杂度也在不断提升。XML作为一种功能强大的新型数据结构,允许开发者将网页的...
JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML
通过这个库,开发者可以轻松地解析XML文件,提取所需信息,或者根据需要修改XML结构。 总结来说,DOM4J是一个功能强大、灵活的XML处理工具,它提供了丰富的功能来解析、操作和生成XML文档,广泛应用于各种Java项目...
- 解析XML文件: ```java Document doc = builder.parse("path_to_xml_file.xml"); ``` - 创建新的`Document`: ```java Document doc = builder.newDocument(); ``` 4. 在`Document`中创建元素、属性和其他节点: ...
生成XML文件则相对简单,通常可以使用DOM(Document Object Model)或StAX(Streaming API for XML)方法。但鉴于Pull解析器的高效性,我们也可以使用它来生成XML。这需要先创建一个`XmlSerializer`实例,然后调用其...
4. 运行Java程序,观察控制台输出或生成的新XML文件,验证DOM解析和操作是否正确。 在“徐守威”的指导下,这个入门案例将帮助你理解DOM解析XML的基本概念,并通过实际操作提升技能。同时,了解并熟练运用DOM解析,...
以下是一个简单的DOM生成XML文件的例子: ```java DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder....
1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件
本文将深入探讨两种主要的XML解析方法——SAX(Simple API for XML)和DOM(Document Object Model),并讲解如何使用它们来解析XML文件以及生成XML文件。 一、SAX解析XML SAX是一种事件驱动的解析器,它逐行扫描...