(17)XML解析技术

来源:互联网 发布:nw.js 窗口最大化 编辑:程序博客网 时间:2024/06/06 07:06
 

11,09,28

今天课堂主要内容:

ENTITY   实体定义。              ELEMENT   元素定义。          ATTLIST   属性定义。

<学生列表>

       <学生>          </学生>

<学生>          </学生>       空白地方是文本内容

</学生列表>

 

<!ATTLIST 学生 性别 CDATA “男”

班级 CDATA #REQUIRED>

等价于

<!ATTLIST 学生 性别 CDATA  “男”>

<!ATTLIST 班级 CDATA  #REQUIRED>

下面老师对昨天的作业进行了讲解。才发现自己做的作业 有很多知识还是很模糊的,不是很理解。

新课:今天主要就是讲了XML的解析技术。

1、对xml进行解析的标准有两种,sax以及dom。

dom:(Document Object Model, 即文档对象模型) 是 W3C 组织推荐的处理 XML 的一种方式,dom是真正的国际标准。

            dom实现的原理是把整个xml文档一次性读出,放在一个树型结构里。在需要的时候,查找特定节点,然后对节点进行读或写。

优点:实现简单。       缺点:比较占内存。

2、sax:(Simple API for XML) 不是官方标准,是事实的标准,几乎所有的 XML 解析器都支持它。

sax的实现方法和dom不同。他只在xml文档中查找特定条件的内容,并且只提取需要的内容。

优点:占用内存小,灵活。       缺点:就是写。

3、xml解析器:Crimson、Xerces、Aelfred2

4、开发工具包:Jaxp、Jdom、dom4j

Jaxp  由javax。xml    org.w3c.dom    org.xml.sax  包及子包组成

编写java程序完成xml文档的解析  dom解析器  用javax.xml.parsers包下的类来创建对象。

DocumentBuilder的对象是dom解析器 通过对应的工厂类创建        DocumentBuilderFactory. Factory=DocumentBuilderFactory.newInstance();

DocumentBuilder db=factory.newDocumentBuilder();

对xml文档进行相应的解析

导入包 or。w3c、dom

5、// (1)先生成工厂类的对象

       DocumentBuilderFactory factor=DocumentBuilderFactory.newInstance();

       //(2)生成解析器对象

       DocumentBuilder db=factor.newDocumentBuilder();

       //(3)对xml文档进行解析

       Document doc=db.parse(new File("src/BOOK.xml"));

       //(4)读取book.xml文档中到底有几个节点?节点的名称是什么,类型是什么以及节点它的值是什么?

        System.out.println(doc.getChildNodes().getLength());//只有一个儿子,就是根节点。getChildNodes()得到几个孩子。getLength() 得到有几个儿子

 

Org.w3c.dom   Node类。 处理节点  节点类型

appendChild(Node newCharild) 添加到此末尾一个新的节点

getNodeValue() 元素节点为空。 文本节点为文本

getNodeName() 得到该节点的名称 元素节点返回名称

getNodeType() 得到该节点的类型

 

总结一下今天的心情:对于学习,有点小迷糊。理解的还不是很透彻。对于生活,我只想说俩字:无奈啊!!