传知_7_xml_

提取XML里的信息有两种方式:

1.          解析           (JAXP  Stax:java EE 5的规范之一)

2.          查询  Xquery

 

接口的意义,接口体现的就是规范

 

工厂模式:一个工厂,负责制造各种产品

工厂方法:一批工厂,不同的工厂造不同的产品,工厂和产品对应

 

XML的解析,主要有两种思路:

1.    DOM  XML文档转换成DOM  所有数据在内存里

2.    SAX   DOM不同,它并不是W3C官方推荐 (效率不好) 通常无法修改节点 流程式分析,可分析大型的XML文件,常用于Server-sideXML—xhtml转换

3.     

 

SAX解析的思路:SAX解析器相当于一个“探雷工bing”、它是串行化地去解析XML文档

,当它在XML文档遇到“元素开始”“元素结束”...等事件时,SAX解析器就会对外发送事件。

解析器: 负责解析XML文档,并引发事件。有SAX包提供。

监听器:负责监听SAX事件,并通过SAX事件来取得XML文档中的数据

 

SAXParserSAXParserFactory:用起来更方便

XMLReaderXMLReaderFactory:用起来繁琐一点

 

校验时要先启用命名空间的支持:

Dbf.setNamespaceAware(true) ;

 

JAXP过于复杂

DOM4JJDOM

         JDOM里的API以类为主,DOM4JAPI以接口为主

         Dom4j可能比Jdom解析速度更快

        

Dom4jAPI规律:

         解析XML文档  xxxReader

         生成XML文档  xxxWriter

        

DOM (document Object Model)

DOM模型将XML结构化文档映射为一系列具有父子关系、兄弟关联关系的节点对象集(w3c标准)

SAX (simple API for XML)

采用一种基于事件处理的方式解析XML

JAXP (java API for XML)

 

目前JAVA领域流行的XML解析器来自Apache组织提供的Xerces项目,这是一个跨语言的XML解析器,目前提供了c++,java,perl等语言版本。

 java版本:Xerces-J   

xml-apis.jar实际上包含的是JAXPDOMSAX提供的一些实现接口

xercesImpl.jar包含Xerces-J实现的jar包,是此项目的核心类库

 

JAXPDOM支持:

使用DTD验证XML文档      DEMO

程序可通过SAXParseException异常对象获取XML解析过程中的错误 DEMO

使用DOM解析XML文档  DEMO

DOM创建XML文档  DEMO

DOM修改  DEMO

解析DTD信息 DEMO

JAXPSAX支持:

使用DTD验证XML文档      DEMO   错误处理DEMO

使用SAX解析XML文档  DEMO

SAX和命名空间    book-ns.xml  CrazyNSHandler.java  DEMO

使用XML Schema来验证XML文档  DEMO

获取节点的类型信息    DEMO

 

浏览器对DOM的支持 解析XML DEMO

 

dom4j     面向接口编程

dom4j常用接口说明

Node                             dom4j树中所有节点的根接口

Branch                          代表能包含子节点的节点,Branch接口下有两个子接口,ElementDocument

Element                        代表XML元素

Document                     代表XML文档根

Attribute                        代表XML元素的属性

DocumentType             代表XML文档里的DOCTYPE声明

ProcessingInstruction            代表XML文档的处理指令

CharacterData                所有文本元素的父接口,有CDTATAText,和Comment 3个子接口

CDATA                         代表XML文档里的CDATA

Text                               代表XML文档里的文本内容

Comment                     注释内容

提供了几个Writer

DOMWriter                            dom4j树转换为w3c DOM

SAXWriter                    dom4j树输出给SAXContenHanlder处理

XMLWriter                    dom4j树转换成对应的XML文档,并可输出到指定的输出流

创建新的Document

DocumentFactory                  

DocumentHelper

dom4j验证XML文档            DEMO

dom4j解析XML文档           DEMO     xpp3-1.1.3.3.jar

使用访问者模式遍历XML文档      DEMO

dom4j创建XML文档           DEMO

dom4j修改XML文档           DEMO

dom4j获取命名空间信息       DEMO

 

JDOM  面向实现类编程

jdom的常用API中只有一个Parent中接口,Parent接口代表所有能包含子内容的节点,有DocumentElement两个实现类。

JDOM常用类说明

Document                     代表XML文档对象本身,也就是XML文档根

Content                         是所有JDOM对象的抽象类

Element                         代表XML元素

Text                               代表XML文档里的文本内容

CDTATA                       代表XML文档CDATA

DocType                       代表XML文档里的DocType声明

ProcessingInstruction            代表XML文档的处理指令

EntityRef                       代表XML文档的实体声明

Attribute                        代表XML文档的属性

Comment                      代表XML文档的注释内容

构建DOM

DOMBuild           负责将一份已经有的w3cdocument对象转换为JDOMDocument

SAXBuiler           广泛使用的工具类,地来自输入流、磁盘或指定URL所代表的XML文档转换为JDOMDocument                

输出工具类

DOMOutput         将内存中的JDOM树输出成W3CDOM

SAXOutput 将内存中的JDOM树输出到SAX2流中,用于触发SAX2事件监听器

XMLOutputter     将内存中的JDOM树输出成XML文档

JDOM验证XML文档                     DEMO

JDOM解析XML文档                     DEMO    

JDOM创建XML文档                     DEMO

JDOM修改XML文档                     DEMO

JDOM获取命名空间信息                DEMO

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

折腾数据折腾代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值