差异SAXParserFactory XMLReaderFactory.哪一个选择?

jen*_*ens 8 java xml sax jaxp

它们似乎都有相同的目的(创建一个XMLReader).一些教程包含一个,另一个包含.

的SAXParserFactory:

示例代码:

// SAXParserFactory
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
XMLReader reader = parser.getXMLReader();
reader.parse(new InputSource("document.xml"));
Run Code Online (Sandbox Code Playgroud)

XMLReaderFactory:

示例代码:

// XMLReaderFactory
XMLReader xmlReader = XMLReaderFactory.createXMLReader();
xmlReader.parse(new InputSource("document.xml"));
Run Code Online (Sandbox Code Playgroud)

题:

这些是主要的差异还是有一些我已经监督过.

你应该选择哪一个?

and*_*dih 4

主要内容JAXP APIs在包中定义javax.xml.parsers。该包包含供应商中立的工厂类,例如为SAXParserFactory您提供 S 的工厂类AXParser

SAXParserFactory定义了一个工厂 API,使应用程序能够配置和获取基于 SAX 的解析器来解析 XML 文档。

  • 定义SAXParser了包装 XMLReader 实现类的 API。

  • 该包org.xml.sax定义了基本的 SAX API。

  • Java 运行时带有默认实现XMLReader

SAXParserFactory对您隐藏 (SAX1) ParserFactory / (SAX2) XMLReaderFactory, ... 的详细信息。

如果您希望能够JAXP用不同的JAXP解析器替换默认的解析器(默认实现中可能存在已知的不兼容/错误)实现,您应该使用供应商中立的SAXParserFactory

如果您知道您的应用程序将始终使用 a,SAX2 XMLReader您可以使用XMLReaderFactory.