gpt4 book ai didi

java - SAXParserFactory 与XMLReaderFactory 的区别。选择哪一个?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:50:39 25 4
gpt4 key购买 nike

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

SAXParserFactory:

示例代码:

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

XMLReaderFactory:

示例代码:

// XMLReaderFactory
XMLReader xmlReader = XMLReaderFactory.createXMLReader();
xmlReader.parse(new InputSource("document.xml"));

问题:

这些是主要差异还是我已经注意到了一些差异。

你应该选择哪一个?

最佳答案

主要的 JAXP API 定义在 javax.xml.parsers 包中。该包包含供应商中立的工厂类,如 SAXParserFactory,它为您提供 SAXParser

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

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

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

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

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

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

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

关于java - SAXParserFactory 与XMLReaderFactory 的区别。选择哪一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10583536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com