Java web xml文件读取解析方式
其实解析xml文件有四种方式:DOM,JDOM,DOM4J,SAX。
我们来说与平台无关的两种官方解析方式:DOM和SAX
一、DOM解析
在Java代码中,xml文件是标记型文档,这时用dom来解析xml文件dom会根据html的层级结构在内存中分配一个树形结构,把html的标签,属性和文本都封装成对象
DOM解析步骤:
1、使用newInstance方法,创建一个DocumentBuilderFactory的对象。
2、创建一个DocumentBuilder对象,通过DocumentBuilder的对象的parse[]
方法加载xml文件到当前项目下,如:
DocumentBuilderdb=dbf.newDocumentBuilder();
Documentdocument=db.parse(uri);
3、获取xml文件
NodeListbooklist=document.getElementsByTagName(节点名称);
4、用foreach方法进行遍历
5、解析子节点
NodeListchildnode=book.getChildNodes();可用childnode.item(k).getNodeType()==Node.ELEMENT_NODE这个方法进行判断以区分text类型的node以及element类型的node。
DOM解析的优点:可以很方便实现增删改的功能
缺点:如果文件过大,造成内存溢出
二、SAX解析
在Java中,SAX解析采用事件驱动,边读边解析,从上到下,一行一行的解析,解析到某一个对象,返回对象名称。而且当SAX解析结束,不会保存任何XML文档的数据。
SAX解析步骤:
1、创建一个SAXParserFactory对象。
SAXParserFactoryfactory=SAXParserFactory.newInstance();
2、创建一个SAXParser对象通过parse方法加载xml文件。
SAXParserparser=factory.newSAXParser();
这时与DOM的区别是这里需要一个handler,此时需要创建一个handler类。
3、handler类需要继承DefaultHandler。
SAX解析的优点:如果文件过大,不会造成内存溢出,方便实现查询操作;
缺点:不能实现增删改操作;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。