Java XML教程 - Java XML API
SAX API
下面是关键的SAX API的摘要:
类 | 用法 |
---|---|
SAXParserFactory | 创建由系统属性javax.xml.parsers.SAXParserFactory确定的解析器的实例。 |
SAXParser | SAXParser接口定义了几个重载的parse()方法。 |
SAXReader | SAXParser包装一个SAXReader,并从SAXParser的getXMLReader()方法返回。 |
DefaultHandler | DefaultHandler实现了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。 |