Core Java学习笔记 XML

Posted on 2009-07-09 13:20 eric_xu 阅读(190) 评论(0)  编辑  收藏 所属分类: Java

DOM(Document Object Model)解析器读入的是一个完整的XML文档,然后将其转化为一个树形结构。适合数据量不大的解析。

Document对象是XML文档的树形结构在内存中的表现。

要读入一个文档,首先要一个DocumentBuilder对象,你可以从DocumentBuilderFactory工厂中得到。

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

DocumentBuilder builder0020= factory.newDocumentBuilder();

 

File f = "xx.xml";
Document doc = builder.parse(f);
或是用一个url
URL u = ......
Document doc = builder.parse(u);
还可以是任意的输入流
InputStream in = .......
Document doc = builder.parse(in);

 

它有实现Node接口以及其它子接口的类对象构成。

可以调用getDocumentElement方法来分析文档内容,它将返回跟元素
Element root = doc.getDocumentElement();

 

String getTagName()返回元素的标签名。

NodeList getChildNodes()得到该元素的子元素,它将返回一个NodeList集合。

String getAttribute()返回属性值。

trim()把实际数据前后的空白字符删掉。

org.w3c.dom.Node

 

DTDXML schema包含了用于解释文档是如何构成的规则。

 

SAX解析器是在解析XML输入的构件时就报告事件,但不会以任何方式存储文档,有事件处理器决定是否要建立数据结构,实际上,DOM解析器是在SAX解析器基础上建立起来的。

SAX解析时,需要一个处理器来解析,要实现ContentHandler 接口,他定义了很多回调方法。

startElementendElement 在每当遇到起始或结束时各调用一次。
characters
每当遇到字符时调用,
startDocument
endDocument分别在文档开始和结束时各调用一次。

 

SAXParserFactory saxfactory = SAXParserFactory.newInstance();

SAXParser parser = saxfactory.newSAXParser();

parser.parse(source, handler); //source是要处理的文件,handler处理器的一个子类

defaultHandler实现了四个接口。

ContentHandler

DTDHandler

EntityResolver

ErrorHandler

public class DefaultHandler

implements EntityResolver, DTDHandler, ContentHandler, ErrorHandler


只有注册用户登录后才能发表评论。


网站导航:
 

posts - 37, comments - 5, trackbacks - 0, articles - 0

Copyright © eric_xu