ImageVerifierCode 换一换
格式:DOC , 页数:15 ,大小:207KB ,
资源ID:3551765      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3551765.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java解析XML详解.doc)为本站会员(hw****26)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

java解析XML详解.doc

1、详解 Java 解析 XML 的四种方法XML 现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便。对于 XML 本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有 DOM(Document Object Model),DTD(Document Type Definition),SAX(Simple API for XML),XSD(Xml Schema Definition),XSLT(Extensible Stylesheet Language Transformations),具体可参阅 w3c 官方网站文档 h

2、ttp:/www.w3.org 获取更多信息。XML 在不同的语言里解析方式都是一样的,只不过实现的语法不同而已。基本的解析方式有两种,一种叫 SAX,另一种叫 DOM。SAX 是基于事件流的解析,DOM 是基于 XML 文档树结构的解析。假设我们 XML 的内容和结构如下: ddviplinuxm30本文使用 JAVA 语言来实现 DOM 与 SAX 的 XML 文档生成与解析。首先定义一个操作 XML 文档的接口 XmlDocument 它定义了 XML 文档的建立与解析的接口。package com.alisoft.facepay.framework.bean;/* author hon

3、gliang.dinghl* 定义 XML 文档建立与解析的接口*/public interface XmlDocument /* 建立 XML 文档* param fileName 文件全路径名称*/public void createXml(String fileName);/* 解析 XML 文档* param fileName 文件全路径名称*/public void parserXml(String fileName);1. DOM 生成和解析 XML 文档为 XML 文档的已解析版本定义了一组接口。解析器读入整个文档,然后构建一个驻留内存的树结构,然后代码就可以使用 DOM 接口来

4、操作这个树结构。优点:整个文档树在内存中,便于操作;支持删除、修改、重新排列等多种功能;缺点:将整个文档调入内存(包括无用的节点) ,浪费时间和空间;使用场合:一旦解析了文档还需多次访问这些数据;硬件资源充足(内存、CPU) 。 import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter;impo

5、rt 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.transf

6、orm.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;/*

7、 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

8、= 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 = t

9、his.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.appendC

10、hild(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, “gb231

11、2“);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.prin

12、tln(e.getMessage(); catch (IllegalArgumentException e) System.out.println(e.getMessage(); catch (FileNotFoundException e) System.out.println(e.getMessage(); catch (TransformerException e) System.out.println(e.getMessage();public void parserXml(String fileName) try DocumentBuilderFactory dbf = Docume

13、ntBuilderFactory.newInstance();DocumentBuilder db = dbf.newDocumentBuilder();Document document = db.parse(fileName);NodeList employees = document.getChildNodes();for (int i = 0; i “);public void parserXml(String fileName) SAXParserFactory saxfac = SAXParserFactory.newInstance();try SAXParser saxpars

14、er = saxfac.newSAXParser();InputStream is = new FileInputStream(fileName);saxparser.parse(is, new MySAXHandler(); catch (ParserConfigurationException e) e.printStackTrace(); catch (SAXException e) e.printStackTrace(); catch (FileNotFoundException e) e.printStackTrace(); catch (IOException e) e.print

15、StackTrace(); class MySAXHandler extends DefaultHandler boolean hasAttribute = false;Attributes attributes = null;public void startDocument() throws SAXException System.out.println(“文档开始打印了“);public void endDocument() throws SAXException System.out.println(“文档打印结束了“);public void startElement(String

16、uri, String localName, String qName, Attributes attributes) throws SAXException if (qName.equals(“employees“) return;if (qName.equals(“employee“) System.out.println(qName);if (attributes.getLength() 0) this.attributes = attributes;this.hasAttribute = true; public void endElement(String uri, String l

17、ocalName, String qName) throws SAXException if (hasAttribute i Java configuration with XML Schema Marcello Vitaletti 然后使用同一个解析器修改 catalog.xml,清单 2 是修改后的 XML 文档,catalog-modified.xml。清单 2. 修改后的 XML 文档(catalog-modified.xml)Create flexible and extensible XML schemas Ayesha Malik 与 W3C DOM API 相比,使用 dom4

18、j 所包含的解析器的好处是 dom4j 拥有本地的 XPath 支持。DOM 解析器不支持使用 XPath 选择节点。本文包括以下几个部分: 预先设置 创建文档 修改文档预先设置这个解析器可以从 http:/dom4j.org 获取。通过设置使 dom4j-1.4/dom4j-full.jar 能够在 classpath 中访问,该文件中包括 dom4j 类、XPath 引擎以及 SAX 和 DOM 接口。如果已经使用了 JAXP 解析器中包含的 SAX 和 DOM 接口,向 classpath 中增加 dom4j-1.4/dom4j.jar 。 dom4j.jar 包括 dom4j 类和 X

19、Path 引擎,但是不含 SAX 与 DOM 接口。创建文档本节讨论使用 dom4j API 创建 XML 文档的过程,并创建示例 XML 文档 catalog.xml。使用 import 语句导入 dom4j API 类:import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.Element;使用 DocumentHelper 类创建一个文档实例。 DocumentHelper 是生成 XML 文档节点的 dom4j API 工厂类。Document document = DocumentHelpe

20、r.createDocument();使用 addElement() 方法创建根元素 catalog 。 addElement() 用于向 XML 文档中增加元素。Element catalogElement = document.addElement(“catalog“);在 catalog 元素中使用 addComment() 方法添加注释“An XML catalog” 。catalogElement.addComment(“An XML catalog“);在 catalog 元素中使用 addProcessingInstruction() 方法增加一个处理指令。catalogElem

21、ent.addProcessingInstruction(“target“,“text“);在 catalog 元素中使用 addElement() 方法增加 journal 元素。Element journalElement = catalogElement.addElement(“journal“);使用 addAttribute() 方法向 journal 元素添加 title 和 publisher 属性。journalElement.addAttribute(“title“, “XML Zone“);journalElement.addAttribute(“publisher“, “IBM developerWorks“);向 article 元素中添加 journal 元素。Element articleElement=journalElement.addElement(“article“);为 article 元素增加 level 和 date 属性。articleElement.addAttribute(“level“, “Intermediate“);articleElement.addAttribute(“date“, “December-2001“);向 article 元素中增加 title 元素。

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。