xml解析:
xml 的解析方式有哪些?
一个是使用dom,一个是sax进行解析。
使用dom和sax解析都有哪些特点?
dom解析过程:
根据xml的层级结构在内存中分配一个属性结构,把xml的文本,属性等封装成对象。
使用dom方式解析xml 时,如果文件过大,造成内存溢出。它的优点是,很方便实现增删改。
sax解析过程:
采用事件驱动,边读边解析。从上到下,一行一行的解析,解析到某一对象,把对象名称返回。使用sax方式不会造成内存溢出,实现查询。但是缺点是不能是实现增删改操作。
要解析xml,首先需要解析器
不同的公司和组织提供了针对dom和sax方式的解析器,通过api方式提供
sun公司 jaxp
dom4j组织 dom4j 开源组织推出的解析开发包
jdom组织 jdom 开源组织推出的解析开发包
jaxp的api查看
jaxp解析器在jdk的javax.xml.parsers包里面
四个类:分别是针对dom和sax解析使用的类
dom:
DocumentBuilder: 解析器类
——这个类是一个抽象类,不能创建类对象
此类的实例可以从DocumentBuilderFactory.newDocumentBuilder()方法获取
——一个方法可以解析xml parse("xml路径")返回时Document整个文档
——返回的document是一个接口,父接口是Node,如果在document里面找不到
想要的方法可以到Node里面去找
——在document里面方法
getElementsByTagName(String tagname)
——这个方法可以得到标签,返回集合NodeList
createElement(String tagName)
——创建标签
createTextNode(String data)
——创建文本
appendchild(Node newChild)
——把文本添加到标签下面
removeChild(Node oldChild)
——删除节点
getParentNode()
——获取父节点
NodeList list
——getLength() 得到集合的长度
——item(int index) 下标取到具体的值
DocumentBuilderFactory: 解析器工厂
——这个类也是一个抽象类,不能创建类对象
newInstance() 获取 DocumentBuilderFactory 的实例
版权声明:本文为weixin_43858507原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。