阅读(4884) (1)

Java XML API

2017-01-09 18:51:56 更新

Java XML教程 - Java XML API

SAX API

下面是关键的SAX API的摘要:

用法
SAXParserFactory创建由系统属性javax.xml.parsers.SAXParserFactory确定的解析器的实例。
SAXParserSAXParser接口定义了几个重载的parse()方法。
SAXReaderSAXParser包装一个SAXReader,并从SAXParser的getXMLReader()方法返回。
DefaultHandlerDefaultHandler实现了ContentHandler,ErrorHandler,DTDHandler,和EntityResolver接口。 通过使用DefaultHandler,我们可以只覆盖我们需要的那些。
ContentHandler此接口定义回调方法,如startDocument,endDocument,startElement和endElement。 这些方法在识别XML标记时调用。它还定义了被调用的方法characters()当解析器遇到XML元素中的文本时。它定义被调用的processingInstruction()当解析器遇到内联处理指令时。
ErrorHandler它使用error(),fatalError()和warning()方法来响应各种解析错误。 默认的错误处理程序只会抛出致命错误和的异常忽略验证错误。
DTDHandler用于处理DTD
EntityResolver它的resolveEntity()方法用于标识数据。

我们通常实现大多数 ContentHandler 方法。

为了提供更稳健的实现,我们可以从ErrorHandler实现方法。


SAX包

SAX解析器在下表中列出的软件包中定义。

描述
org.xml.sax定义SAX接口。
org.xml.sax.ext定义用于更高级SAX处理的SAX扩展。
org.xml.sax.helpers定义SAX API的辅助类。
javax.xml.parsers定义SAXParserFactory类,它返回SAXParser。

DOM API

javax.xml.parsers.DocumentBuilderFactory 类返回一个 DocumentBuilder 实例。

我们使用 DocumentBuilder 实例来产生一个 Document 对象退出XML文档。

构建器由系统属性 javax.xml.parsers.DocumentBuilderFactory 确定。

DocumentBuilder 中的 newDocument()方法可以创建一个实现 org.w3c.dom.Document 接口的空Document。

我们可以使用其中一个构建器的解析方法来创建一个 Document 从现有的XML文档。


DOM包

文档对象模型实现在中定义下表中列出的软件包。

描述
org.w3c.dom定义XML文档的DOM编程接口。
javax.xml.parsers定义DocumentBuilderFactory类和DocumentBuilder类。

XSLT API

TransformerFactory 创建一个 Transformer 对象。

XSLT API在下表中显示的包中定义。

描述
javax.xml.transform定义TransformerFactory和Transformer类。 我们可以从变换器对象调用transform()方法来进行变换。
javax.xml.transform.dom用于从DOM创建输入和输出对象的类。
javax.xml.transform.sax用于从SAX解析器创建输入对象和从SAX事件处理程序输出对象的类。
javax.xml.transform.stream用于从I / O流创建输入对象和输出对象的类。

StAX APIs

StAX为开发人员提供了SAX和DOM解析器的替代方法。

StAX可以用更少的内存进行高性能流过滤,处理和修改。

StAX是用于流式XML处理的标准的双向拉解析器接口。

StAX提供比SAX更简单的编程模型,并且比DOM更高的内存效率。

StAX可以解析和修改XML流作为事件。

StAX包

StAX APIs在下表中显示的包中定义。

描述
javax.xml.stream定义迭代XML文档元素的XMLStreamReader接口。 定义XMLStreamWriter接口,指定如何写入XML。
javax.xml.transform.stax提供StAX特定的转换API。