实习javaweb前准备:第七天XML

付费节点推荐


免费节点


节点使用教程


1. XML解析的简介
xml是标记型文档
xml的解析方式 dom和sax
dom方式解析:
根据xml的层级结构在内存中分配一个树形结构,把xml的标签,属性和文本都封装成对象。
缺点:如果文件过大,造成内存溢出
优点:很方便实现增删改操作
sax方式解析
采用事件驱动,边读边解析
-从上到下,一行一行解析,解析到某一对象,返回对象名称
缺点:不能实现增删改操作
优点:如果文件过大,不会造成内存溢出,方便实现查询操作

想要解析xml,首先需要解析器
不同公司和组织提供了针对dom和sax方式的解析器,通过api方式提供。
sun公司提供了针对dom和sax解析器 jaxp
dom4组织,针对dom和sax解析器 dom4j

2.dom的api查看
jaxp是javase的一部分
jaxp解析器在jdk的javax.xml.parsers包里面
四个类:分别是针对dom和sax解析使用的类
dom:
DocumentBuilder 解析器类(abstract类)

一个方法:可以解析xml,parse("xml路径") 返回的是Document整个文档
-返回的document是一个接口,父节点是Node,如果在document里面找不到想要的方法,到Node里面去找。
-在document里面的方法:
getElementsByTagName(String tagname)
-这个方法可以得到标签
-返回集合NodeList
creatElement(String tagName)
-创建标签
creatTextNode(String data)
-创建文本
appendChild(Node newChild)
-把文本添加到标签下面
removeChild(Node oldChild)
-删除节点
getParentNode()
-获取父节点
NodeList
-getLength() 得到集合的长度

DocumentBuilderFactory 解析器工厂
-这个类也是一个抽象类,不能new
newInstance() 获取 DocumentBuilderFactory的实例。

sax:
SAXParser 解析器类
SAXParserFactory 解析器工厂

3.使用jaxp查询操作
查询xml中所有的name元素的值
步骤:
(1)创建解析器工厂
(2)根据解析器工厂创建解析器
(3)解析xml返回document Document document = builder.parse("src/person.xml");
(4)得到所有的name元素 (getElementsByTagName)
(5)返回集合,遍历集合,得到每一个name元素
-遍历 getLength() item()
-得到元素里面的值 使用geTextContent()

查询xml中第一个name的值
(1)创建解析器工厂
(2)根据解析器工厂创建解析器
(3)解析xml,返回document
(4)得到所有name元素
(5)使用返回集合,里面方法 item 下标获取具体的元素
(6)得到具体的值,使用getTextContent方法

4.使用jaxp添加节点
在第一个p1下面(末尾)添加
步骤:
(1)创建解析器工厂
(2)根据解析器工厂创建解析器
(3)解析xml,返回Document
(4)得到第一个p1 (得到所有p1,使用item方法下标得到)
(5)创建sex标签 creatElement
(6)创建文本 creatTextNode
(7)把文本添加到sex下面 appendChild
(8)吧sex添加到第一个p1下面
(9)回写xml

5. 使用jaxp修改节点
修改第一个p1下面的sex内容为 “男”
步骤:
(1)创建解析器
(2)根据解析器工厂创建解析器
(3)就诶系xml,返回document
(4)得到sex item方法
(5)修改sex里面的值 setTextContent方法
(6)回写xml

6.使用jaxp删除节点
删除 节点
步骤:
(1)创建解析器工厂
(2)根据解析器工厂创建解析器
(3)解析xml,返回document
(4)获取sex元素
(5)获取sex的父节点, 使用getElementNode方法
(6)删除使用父节点删除 removeChild方法
(7)回写xml

7. 使用jaxp遍历节点
方法:
递归遍历

未经允许不得转载:Bcoder资源网 » 实习javaweb前准备:第七天XML

相关推荐

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册