在这个例子里,我说明DOM解释器修改已有XML文件的使用:
增加新的元素;
更新已有元素属性;
更新已有元素值;
删除已有元素;
1. XML文件
观察前后XML文件。
文件: file.xml - 原XML文件。
[code="xml"]
Users/tongxiqing/file.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?><company><staff id="1"><lastname>孙</lastname><nickname>齐天大圣</nickname><salary>2000000</salary></staff></company>
[/code]
之后,通过DOM XML 解析器更新以上XML 文件。
更新staff属性 id = 2;
更新工资值为 200000;
在staff下添加一个"age"的新元素;
删除staff下的“firstname”元素;
文件:file.xml – 最新修改过的XML文件.
[code="xml"]
<?xml version="1.0" encoding="UTF-8" standalone="no"?><company><staff id="2"><lastname>孙</lastname><nickname>齐天大圣</nickname><salary>2000000</salary><age>28</age></staff></company>
[/code]
2. DOM 解析器
DOM XML 解析器更新了以上的XML文件。
[code="java"]
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.mkyong.seo;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
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;
import org.xml.sax.SAXException;
/**
*
* @author Administrator
*/
public class ModifyXMLFile {
public static void main(String argv[]) {
try {
String filepath = "src/Users/tongxiqing/file.xml";
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(filepath);
// Get the root element
Node company = doc.getFirstChild();
// Get the staff element , it may not working if tag has spaces, or
// whatever weird characters in front...it's better to use
// getElementsByTagName() to get it directly.
// Node staff = company.getFirstChild();
// Get the staff element by tag name directly
Node staff = doc.getElementsByTagName("staff").item(0);
// update staff attribute
NamedNodeMap attr = staff.getAttributes();
Node nodeAttr = attr.getNamedItem("id");
nodeAttr.setTextContent("2");
// append a new node to staff
Element age = doc.createElement("age");
age.appendChild(doc.createTextNode("28"));
staff.appendChild(age);
// loop the staff child node
NodeList list = staff.getChildNodes();
for (int i = 0; i
分享到:
相关推荐
用java中的DOM解析器,解析XML文档,并实现一简单通讯录!
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件...如今你可以看到越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。这是必须使用的jar包, Hibernate用它来读写配置文件。
dom4j.jar的jar包,java解析xml文件的jar包,无脑好用~
java中用dom解析xml的经典入门级文档
支持SAX解析XML文件,DOM解析XML文件,Pull解析器解析XML文件,Pull生成XML文件,JAVA和Kotlin两种语言编写
不同于SAX和DOM的XML高效解析器,内存占用少,速度快,支持XPATH;用多种语言实现,C,JAVA等
利用JSP直接读写XML文件,分别用DOM解析器和SAX解析器加以实现,非常适合初学者入门,作为一个了解jsp与XML的台阶
通过dom4j解析配置文件,得到list集合(存放Bean标签的id和class属性) * 3.通过反射实例化得到对应的实例化对象,放置在map中(map是键值对,可根据id获取值)(遍历list获取对应的class属性,利用class。formName...
读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似,面向对象性很好。 TinyXML是一个开源的解析XML的解析库,能够用于C++,...
然而由于使用DOM解析器的时候需要处理整个XML文档,所以对性能和内存的要求比较高,尤其是遇到很大的XML文件的时候。由于它的遍历能力,DOM解析器常用于XML文档需要频繁的改变的服务中。 SAX解析器采用了基于事件的...
掌握DOM解析器,包括创建DOM解析器的步骤;Doucument对象的结构。节点的类型,包括Node接口;Node 接口的常用方法;节点的子孙关系。各节点的实例,包括element节点 、Text节点、 Attr节点 、 DocumentType节点、 ...
用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)...Sun公司提供了Java API for XML Parsing(JAXP)接口来使用SAX和DOM,通过JAXP,我们可以使用任何与JAXP兼容的XML解析器
使用DOM4J进行的一系列对XML文件的操作,包括读写,创建,同时注释出相关的常用的解析器,Document创建器
Dom操作xml文件,增删改查的操作,三层架构设计,servlet,过滤器,利用单例模式开发
这个代码实现了一个简单的XML文档操作。首先导入了所需的库,然后定义了一个名为SimpleXML的类,并在main()方法中创建了一个XML文档...由于使用了DOM解析器来访问XML文档,因此可以方便地获取和修改XML文档中的数据。
解析器的介绍 文档对象模型(DOM)解析实例 SAX解析实例 DOM4J解析实例 JDOM解析实例 JAVA操纵XML 实例讲解
3.2.2 dom解析器工厂 50 3.2.3 jaxp的错误类和异常类 52 3.2.4 用dom解析xml文档实例 53 3.3 使用sax解析xml文档 65 3.3.1 sax的处理机制 66 3.3.2 配置sax解析器 69 3.3.3 sax解析器工厂 70 3.3.4 sax的异常...
Xml-Java-解析器 在 Houari Boumediene 科技大学通用计算机科学 (ACAD) 的第三年第一学期进行的结构化文档项目,用于“结构化文档和 XML”模块 目标 目标是获取一个包含预定义 XML 文件的目录,并递归浏览它,使用 ...
然而由于使用 DOM 解析器的时候需要处理整个 XML 文档,所以对性能和内存的要求比较高,尤其是遇到很大的 XML 文件的时候。由于它的遍历能力,DOM 解析器常用于 XML 文档需要频繁的改变的服务中。 SAX 解析器...
// 把要解析的XML文档转化为输入流,以便DOM解析器解析它 InputStream is = new FileInputStream("test.xml"); // 解析XML文档的输入流,得到一个Document Document doc = dombuilder.parse(is); // 得到XML...