java stax xml_在JDK6.0中用StAX解析XML
摘要
J2EE/XML开发人员一般都用DOM(Document Object Model,文档对象模型)API或者(SAX Simple API for XML)来解析XML文件。这些API各有利弊。DOM API对内存要求高,因为用DOM操纵XML文件需要先将整个XML文件的结构保存到内存中。而SAX API是一个推式解析模型,解析事件由解析器产生。与上面两种方式不同,StAX基于拉式解析模型。在本文中,我们首先建立一个XML文件,然后运用事件生成的StAX拉式方法,采用不同的方法解析它。
google_ad_client = "pub-4751025308591894";
google_ad_width = 180;
google_ad_height = 60;
google_ad_format = "180x60_as_rimg";
google_cpa_choice = "CAAQqfyujAIaCL3B8SF26akaKO3M93M";
//-->
推式解析 vs. 拉式解析和推式解析相比,拉式解析具有以下优点:
1、在拉式解析中,事件是由解析应用产生的,因此拉式解析中向客户端提供的是解析规则,而不是解析器。
2、同推式解析相比,拉式解析的代码更简单,而且不用那么多库。
3、拉式解析客户端能够一次读取多个XML文件。
4、拉式解析允许你过滤XML文件和跳过解析事件。
进入StAX的世界
StAX是Streaming API for XML的缩写,它包含在2004年3月的JSR 173 中。StAX是JDK6.0中包含的新特性。
在推式模型中,直到整个XML文件全部被解析,解析器才会产生解析事件。而拉式解析由应用程序来控制,也就是说解析事件由应用程序产生。这就意味着,你可以暂缓解析、解析时跳过某个元素或者同时解析多个文件。用DOM解析式要先将XML文件解析成DOM结构,因此降低了解析效率。使用StAX,解析事件在XML文件解析过程中产生。下面是各种解析方法之间的比较:
XML Parser API Feature Summary
Feature
StAX
SAX
DOM
TrAX
API Type
Pull, streaming
Push, streaming
In memory tree
XSLT Rule
Ease of Use
High
Medium
High
Medium
XPath Capability
No
No
Yes
Yes
CPU and Memory Efficiency
Good
Good
Varies
Varies
Forward Only
Yes
Yes
No
No
Read XML
Yes
Yes
Yes
Yes
Write XML
Yes
No
Yes
Yes
Create, Read, Update, Delete
No
No
Yes
No
StAX API同样也在JWSDP(Java Web Services Developer Pack )1.6中得到实现,你可以在包javax.xml.stream 中找到它。XMLStreamReader接口用来解析XML文件。XMLStreamWriter接口用来生成XML文件,XMLEventReader用一个对象事件迭代器来解析XML事件。与之相反,XMLStreamReader采用的是游标机制。
前期准备
如果你正在用JDK1.6,那么StAX API已经在默认的路径下了。如果你在用JWSDP 1.6,你需要添加JWSDP 1.6 StAX API到指定路径下。将\sjsxp\lib\ jsr173_api.jar 和 ;\sjsxp\lib\sjsxp.jar添加到CLASSPATH环境变量中,安装JWSDP 1.6到目录下,Jsr173_api.jar 是 JSR-173 API的JAR。
未完,待续。。。
posted on 2006-06-29 20:53 学二的猫 阅读(4459) 评论(1) 编辑 收藏 所属分类: Java禅机
java stax xml_在JDK6.0中用StAX解析XML相关推荐
- 使用JDOM2.0.4 操作/解析xml
转载自 使用JDOM2.0.4 操作/解析xml 一.解析xml内容 xml文件内容: <?xml version="1.0" encoding="utf-8& ...
- tinyxml 读取文本节点_c++中用TINYXML解析XML文件
TinyXML介绍 最近做一个负载均衡的小项目,需要解析xml配置文件,用到了TinyXML,感觉使用起来很容易,给出一个使用TinyXML进行XML解析的简单例子,很多复杂的应用都可以基于本例子的方 ...
- java映射文件是哪一种xml_java解析xml的几种方式哪种最好?
满意答案 gjek59ug 2013.10.10 采纳率:52% 等级:12 已帮助:9223人 (1)DOM解析 DOM是html和xml的应用程序接口(API),以层次结构(类似于树型)来组 ...
- maven中用dom4j解析xml文档
1.需求分析 关于dom4j的详细使用方法请参考:https://blog.csdn.net/qq_41860497/article/details/84339091 在xml中存储了过滤器的的初始化 ...
- java 前言中不允许有内容_解析xml字符串时报“前言中不允许有内容”错误。
一,问题出现经过: j基于java语言webservic服务端接收客户端 传来的xml字符串用 解析时总报:org.dom4j.DocumentException: Error on line 1 o ...
- cocos2d-x 3.0 使用Sax解析xml文档(解决中文显示问题)
今天是个好日子,心想的事儿都能成,明天是个好日子,打开了家门儿迎春风... 恩,听着歌写文档生活就是这么享受. 今天以前的邻居大神突然在qq上赞了我一下,这让我异常激动啊..这还要从前前前几天说起,那 ...
- java document解析xml_[XML]在Java中用Document解析XML实例
------showByCondition输出结果------- e01 name:张三 tel:5128 email:txq512@sina.com e02 name:meixin tel:5252 ...
- java发布WCS服务到GeoServer服务器并解析XML生成可下载的WCS服务数据url(2022.2.14)
GeoServer上的WCS服务发布调用及解析生成可下载为Tif的WCSUrl 2022.2.14 所用软件环境(Java.Tomcat.GeoServer.Google Browser.Eclips ...
- python3 xpath_Python 3中用XPath解析XML
我有以下xml: Biscuits Wrapped Finished Biscuits Biscuits (Wrapped) Biscuits Sweet Finished Biscuits Bisc ...
最新文章
- 黑盒测试方法之边界值分析法
- 数据统计脚本(一周)
- Java线程优先级的概念
- 利用Minhash和LSH寻找相似的集合
- MySQL笔记4:desc命令的两个用法
- 【Python-ML】SKlearn库多元线性回归性能评估
- ES6 数值的扩展
- java数据库编程之JDBC
- 谷歌Apps vs.微软Office
- tasm报错illegal memory reference的解决办法
- Mac 下安装RabbitMQ及配置RabbitMQ可远程访问
- 盘点那些适合写api接口的工具
- 使用javascript实现点击复制到剪贴板
- 腾讯云TRTCCalling实时音视频说明文档
- HTML超链接标签—链接QQ在线聊天
- 很努力了,为什么我还在原地踏步?
- Windows显卡切换
- cs224n 2019 Lecture 9: Practical Tips for Final Projects
- MySQL_day2笔记
- 重现期Matlab\Python程序(Gumbel和广义极值分布)