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