XML :: LibXML,XMl :: DOM和XML :: SAX之间的区别

时间:2014-03-27 12:46:06

标签: xml dom sax libxml2 xml-libxml

XML :: LibXML,XML :: DOM和XML :: SAX之间有什么区别。 我是否可以仅使用XML :: LibXML,它应该提供XML :: DOM和XML :: SAX

的所有功能

1 个答案:

答案 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