0

XML::LibXML 、 XML::DOM 和 XML::SAX 之间有什么区别。我可以只使用 XML::LibXML,它应该提供 XML::DOM 和 XML::SAX 的所有功能吗

4

1 回答 1

0

XML::SAX是一个实现 SAX 解析器的框架。它带有XML::SAX::PurePerl一个纯 Perl 实现,但其他 XML 模块可以提供自己的实现,共享相同的高级 API。一个这样的模块是XML::LibXML. 基于的XML::SAX解析器XML::LibXML通常比纯 Perl 解决方案更快。

XML::DOM是一个提供符合 DOM 级别 1 的 XML 操作 API 的模块,其之上XML::Parser又基于expat C 库。XML::LibXML基于libxml2并提供自己的 DOM 接口实现(DOM Level 3 的一个大子集)。所以它应该提供所有的功能XML::DOM

总而言之,您只能XML::LibXML用于 XML 处理,但XML::SAX它是一个依赖项。如果使用XML::LibXMLSAX 解析器,XML::SAX将在幕后使用。

于 2014-03-27T18:51:41.387 回答