XML学习之--简析方式

js使用dom解析标记型文档

根据html的层级结构,在内存中分配一个树形结构,把HTML标签,属性和文本都分装成对象。

使用dom和sex解析xml的过程

dom解析:

  1. 根据xml的层级结构在内存中分配一个树形结构。
  2. 把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: 解析器工厂

猜你喜欢

转载自blog.csdn.net/hare_you/article/details/79932122
今日推荐