XML文件解析技术总结(二)

XML文件解析技术总结(二)

在上一篇文章中我们主要是简单的介绍了一下XML和相关的解析技术,接下来我们就来相对具体地介绍一下解析器模型。

DOM

DOMW 3C 组织以IDLInterface Definition Language, 接口定义语言)的形式定义了DOM中的接口。某种语言要实现DOM,需要将DOM接口转换为本语言中的适当结构。

DOM结构模型

DOM中的核心概念是节点,它把XML文档的各个部分(元素、属性、文本、注释和处理指令等)都抽象为节点。在内存中整个文档是一个树的结构存储的,整棵树是个节点,树中的每一个节点也是一个树。我们通过访问树中的节点来存取XML文档的内容。

DOM定义了一个Node接口,用于表示文档树中一个节点。从Node接口派生出了更多的具体接口,例如Document接口、Element接口、Attr接口。

上图表示DOM中表示XML文档中各组成部分的接口继承关系

 

在实际使用中,很少使用Node对象,而是DocumentTextElementAttrNode对象的子对象来操作文档。当然在顶层的Node接口声明了对节点进行操作的方法。下面就列出了Node接口的主要方法:

public String getNodeName();

       返回该节点的名字

public short getNodeType();

       返回表示该节点类型的代码

public String getNodeValue() throws DOMException;

       返回该节点的值

public void setNodeValue(String nodeValue) throws DOMException;

       设置该节点的值

public boolean hasChildNodes();

       判断该节点是否还有子节点

public NodeList getChildNodes();

       以列表的形式返回该节点的所有子节点

………等等

DOM解析器工厂

javax.xml.parsers包中定义了DOM解析器工厂类DocumentBuildFactory,用于产生DOM解析器。DocumentBuildFactory是一个抽象类,在这个类中提供了一个静态的方法newInstance( ),用于创建工厂类的一个实例。

DocumentBuildFactory factory = DocumentBuildFactory.newInstance();

DoucmentBuild build = factory.newDocumentBuilder();                                        

DocumentBuild类也是一个抽象类,调用DocumentBuildFactorynewInstance( )方法得到具体厂商的工厂类的实例后,再利用其newDocumentBuilder( )方法,得到具体厂商的DOM解析器对象。

DocumentBuilder类提供了parse()方法,用于解析XML文档的内容,返回一个表示整个文档的Document对象。Parse()方法的参数可以是File类、InputSource类、InputStream类或表示XML文件的URI

DOM树中的节点类型

DOM本质上是节点的集合。由于一个文档中可能包含不同类型的信息。

节点类型

DOM中的接口

说明

注释

Comment

Comment接口继承自CharacterData接口,表示注释的内容

处理指令

ProcessingInstruction

ProcessingInstruction接口表示XML文档中的处理指令部分

文档类型

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值