【发布时间】:2012-05-21 22:47:21
【问题描述】:
它们似乎都有相同的目的(创建一个 XMLReader)。 有些教程包含一个,有些包含另一个。
SAXParserFactory:
- http://docs.oracle.com/javase/7/docs/api/javax/xml/parsers/SAXParserFactory.html
- 似乎更易于配置
- 更多样板代码
- 官方支持的api
示例代码:
// SAXParserFactory
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
XMLReader reader = parser.getXMLReader();
reader.parse(new InputSource("document.xml"));
XMLReaderFactory:
- http://docs.oracle.com/javase/7/docs/api/org/xml/sax/helpers/XMLReaderFactory.html
- 少两行代码
- 较少配置
- 社区支持,不提供保修
示例代码:
// XMLReaderFactory
XMLReader xmlReader = XMLReaderFactory.createXMLReader();
xmlReader.parse(new InputSource("document.xml"));
问题:
这些是主要区别还是我监督过的一些区别。
你应该选择哪一个?
【问题讨论】:
-
SAXParserFactory 是 JAXP,而 XMLReaderFactory 是“官方”SAX API。我记得 O'Reilly 的旧 SAX2 书推荐了官方 API,因为它处理名称空间的方式。我不知道这是否相关了。但是,我想我会使用 XMLReaderFactory,除非我出于某种原因需要 JAXP。也许其他人可以提供更多当前的输入。