js使用dom解析标记型文档
根据html的层级结构,在内存中分配一个树形结构,把HTML标签,属性和文本都分装成对象。
使用dom和sex解析xml的过程
dom解析:
- 根据xml的层级结构在内存中分配一个树形结构。
- 把xml每一部分都分装成对象。
优缺点:1.使用dom方式解析xml时候,如果文件过大,造成内存溢出
2.很方便实现增删改操作。
sax解析过程:
采用事件驱动,边读边解析(从上到下,一行一行的解析,解析到某一个对象,把对象名称返回)
优缺点: 1.使用sax方式不会造成内存溢出,实现查询。
2.使用sax方式,不能实现增删改操作
xml解析器
(针对dom和sax技术的解析器,通过api方式):
jaxp、dom4j、jdom(dom4j常用)
jaxp:
1.jaxp是Javase的一部分。
2.jaxp解析器在jdk的Javax.xml.parsers包里面
3.jaxp有四个类(分别是针对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)下标取到具体的值
for(int i=0;i<list.getLength();i++) {
list.item(i)
}
getTextContent()
- 得到标签里面的内容
DocumentBuilderFactory:解析器工厂,也是一个抽象类,newInstance()DocumentBuilderFactory的实类
sax:
SAXParser:解析器类
SAXParserFactory: 解析器工厂