javaWEb-day01(XML编程)

本文介绍了JavaWeb中XML编程的基础,包括DOM和SAX两种解析方式。DOM解析适合增删改,但内存消耗大,而SAX解析效率高,适用于查找。文章详细讲解了JAXP和dom4j库的使用,以及如何通过JAXP进行DOM和SAX解析,展示了XML文档操作的基本步骤。
摘要由CSDN通过智能技术生成

XML编程


就是:写java程序操作XML文档。增删改查(CRUD)create read update delete



XML解析方式


分为两种:dom和sax。操作XML文档,如果你想增删改,请用dom。如果你想查找,请用sax



dom


(Document Object Model, 即文档对象模型) 是 W3C 组织推荐的处理 XML 的一种方式。




由于用dom解析方法解析,需要把所有节点都变成对象进内存,所以如果这个XML文件很大,这时java虚拟机就会跑不起来。


我们来看看java虚拟机的默认内存多大64M








把java虚拟机内存改成80M:




这样就可以运行60M的程序了。因为java虚拟机它本身也占一定的内存。



等20秒,这个程序运行完毕,刚才给java虚拟机分配的内存就又还给电脑了。


在控制台这么改:




sax

 

(Simple API for XML) 不是官方标准,但它是 XML 社区事实上的标准,几乎所有的 XML 解析器都支持它。

读取一行,解析一行。

特点:对内存消耗小,效率特别高。

但是sax方式不适合用,只适合用来在XML中查找数据。






XML解析器


支持这两种解析方式的一些解析器:

Crimson(sun)完败、Xerces(ibm)  都贡献给了apache。

Aelfred2(dom4j)


由于程序员自己写程序去调用这些解析器比较困难。

sun公司为了我们方便的操作XML文档,又写了一些API对解析器进行了包装。



XML解析开发包


Jaxp(sun)这个API在1.4以前调用的是Crimson(sun)解析器,在1.5以后调用的是Xerces(ibm)解析器。

Jdom 的开发人员有了分裂,

dom4j(以前没有)分裂出来的开发人员又开发出了dom4j。完胜。使用的解析器是Aelfred2(dom4j)。


虽然dom4j完胜Jaxp(sun),但是我们还是要学Jaxp(sun),因为它是标准,现在不行,不代表将来不行。



JAXP


JAXP 开发包是J2SE的一部分,它由javax.xml、org.w3c.dom 、org.xml.sax 包及其子包组成.
javax.xml.parsers 包中,定义了几个工厂类,程序员调用这些工厂类,可以得到对xml文档进行解析的 DOM 或 SAX 的解析器对象。



使用JAXP进行DOM解析


javax.xml.parsers 包中的DocumentBuilderFactory用于创建DOM模式的解析器对象 , DocumentBuilderFactory是一个抽象工厂类,它不能直接实例化,但该类提供了一个newInstance方法 ,这个方法会根据本地平台默认安装的解析器,自动创建一个工厂的对象并返回。

       

       获得JAXP中的DOM解析器:

  1. 调用 DocumentBuilderFactory.newInstance() 方法得到创建 DOM 解析器的工厂。
  2. 调用工厂对象的 newDocumentBuilder方法得到 DOM 解析器对象。
  3. 调用 DOM 解析器对象的 parse() 方法解析 XML 文档,得到代表整个文档的 Document 对象,进行可以利用DOM特性对整个XML文档进行操作了。



javax.xml.parsers 
DocumentBuilderFactory

public abstract class DocumentBuilderFactory

构造方法摘要
protected DocumentBuilderFactory() 
          用于阻止实例化的受保护构造方法。

方法摘要
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值