XML :: LibXML,XML :: DOM和XML :: SAX之间有什么区别。 我是否可以仅使用XML :: LibXML,它应该提供XML :: DOM和XML :: SAX
的所有功能答案 0 :(得分:0)
XML::SAX
是实现SAX解析器的框架。它附带XML::SAX::PurePerl
,这是一个纯Perl实现,但其他XML模块可以提供共享相同高级API的自己的实现。一个这样的模块是XML::LibXML
。基于XML::SAX
的{{1}}解析器通常比纯Perl解决方案更快。
XML::LibXML
是一个模块,它在XML::DOM
之上提供符合DOM Level 1的XML操作API,而后者又基于 expat C库。 XML::Parser
基于 libxml2 ,并提供自己的DOM接口实现(DOM Level 3的一个大子集)。所以它应该提供XML::LibXML
的所有功能。
总而言之,您只能使用XML::DOM
进行XML处理,但XML::LibXML
是依赖项。如果您使用XML::SAX
SAX解析器,则会在幕后使用XML::LibXML
。