XML :: LibXML,XMl :: DOM和XML :: SAX之间的差异

问题描述:

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

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

XML::DOM是提供关于这又是基于外籍 C库的XML::Parser顶部的DOM Level 1标准XML操作API的模块。 XML::LibXML基于libxml2并提供自己的DOM接口实现(DOM Level 3的一个大子集)。所以它应该提供XML::DOM的所有功能。总之,您只能使用XML::LibXML进行XML处理,但XML::SAX是依赖项。如果您使用XML::LibXML SAX解析器,则将在幕后使用XML::SAX

+0

谢谢你的帮助。 我还有一个疑问,如果我使用XML :: LibXML,那么我可以在perl中使用XML :: LibXML DOM和SAX,而无需明确地安装它们这些模块。 – pjain