没有合适的资源?快使用搜索试试~ 我知道了~
java解析xml四种方法,好文档,快来下载吧
资源详情
资源评论
资源推荐
详解 Java 解析 XML 的四种方法
我要评论 字号:TT
现在已经成为一种通用的数据交换格式 平台的无关性使得很多场合都需要用到
。本文将详细介绍用 解析 的四种方法。
:
现在已经成为一种通用的数据交换格式它的平台无关性语言无关性系统无关性
给数据集成与交互带来了极大的方便。对于 本身的语法知识与技术细节需要阅读相
关的技术文献这里面包括的内容有 !"#$# %& !"#
&' ()#) **)"' +, - . *" */"
()#) *&01#2)$*#2/#3!3&.2- ."#) 2 具 体 可 参 阅
官方网站文档 /##'4455 .3 获取更多信息。
XML 在不同的语言里解析方式都是一样的,只不过实现的语法不同而已。基本的解析
方式有两种,一种叫 SAX,另一种叫 DOM。SAX 是基于事件流的解析,DOM 是基于 XML
文档树结构的解析。假设我们 XML 的内容和结构如下:
<?xml version="1.0" encoding="UTF-8"?>
<employees>
<employee>
<name>ddviplinux</name>
<sex>m</sex>
<age>30</age>
</employee>
</employees>
本文使用 JAVA 语言来实现 DOM 与 SAX 的 XML 文档生成与解析。
首先定义一个操作 XML 文档的接口 XmlDocument 它定义了 XML 文档的建立与解析的接
口。
package com.alisoft.facepay.framework.bean;
/**
*
* @author hongliang.dinghl
* 定义 XML 文档建立与解析的接口
*/
public interface XmlDocument {
/**
* 建立 XML 文档
* @param fileName 文件全路径名称
*/
public void createXml(String fileName);
/**
* 解析 XML 文档
* @param fileName 文件全路径名称
*/
public void parserXml(String fileName);
}
1.DOM 生成和解析 XML 文档
为 文档的已解析版本定义了一组接口。解析器读入整个文档,然后构建一个驻
留内存的树结构,然后代码就可以使用 接口来操作这个树结构。优点:整个文档树
在内存中,便于操作;支持删除、修改、重新排列等多种功能;缺点:将整个文档调入内
存(包括无用的节点),浪费时间和空间;使用场合:一旦解析了文档还需多次访问这些
数据;硬件资源充足(内存、6+7)。
package com.alisoft.facepay.framework.bean;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
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.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
/**
*
* @author hongliang.dinghl
* DOM 生成与解析 XML 文档
*/
public class DomDemo implements XmlDocument {
private Document document;
private String fileName;
public void init() {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
this.document = builder.newDocument();
} catch (ParserConfigurationException e) {
System.out.println(e.getMessage());
}
}
public void createXml(String fileName) {
Element root = this.document.createElement("employees");
this.document.appendChild(root);
Element employee = this.document.createElement("employee");
Element name = this.document.createElement("name");
name.appendChild(this.document.createTextNode("丁宏亮"));
employee.appendChild(name);
Element sex = this.document.createElement("sex");
sex.appendChild(this.document.createTextNode("m"));
employee.appendChild(sex);
Element age = this.document.createElement("age");
age.appendChild(this.document.createTextNode("30"));
employee.appendChild(age);
root.appendChild(employee);
TransformerFactory tf = TransformerFactory.newInstance();
try {
Transformer transformer = tf.newTransformer();
DOMSource source = new DOMSource(document);
transformer.setOutputProperty(OutputKeys.ENCODING, "gb2312");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));
StreamResult result = new StreamResult(pw);
transformer.transform(source, result);
System.out.println("生成 XML 文件成功!");
} catch (TransformerConfigurationException e) {
System.out.println(e.getMessage());
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
} catch (FileNotFoundException e) {
剩余12页未读,继续阅读
苏坡-man
- 粉丝: 0
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0