【发布时间】:2023-03-21 03:25:01
【问题描述】:
XML::LibXML、XML::DOM 和 XML::SAX 有什么区别。 我可以只使用 XML::LibXML,它应该提供 XML::DOM 和 XML::SAX 的所有功能
【问题讨论】:
标签: xml dom sax libxml2 xml-libxml
XML::LibXML、XML::DOM 和 XML::SAX 有什么区别。 我可以只使用 XML::LibXML,它应该提供 XML::DOM 和 XML::SAX 的所有功能
【问题讨论】:
标签: xml dom sax libxml2 xml-libxml
XML::SAX 是一个实现 SAX 解析器的框架。它带有XML::SAX::PurePerl,这是一个纯 Perl 实现,但其他 XML 模块可以提供自己的实现,共享相同的高级 API。一个这样的模块是XML::LibXML。基于XML::LibXML 的XML::SAX 解析器通常比纯Perl 解决方案更快。
XML::DOM 是一个在XML::Parser 之上提供符合DOM Level 1 的XML 操作API 的模块,而XML::Parser 又基于expat C 库。 XML::LibXML 基于 libxml2 并提供自己的 DOM 接口实现(DOM Level 3 的一个大子集)。所以它应该提供XML::DOM 的所有功能。
总而言之,您只能使用 XML::LibXML 进行 XML 处理,但 XML::SAX 是一个依赖项。如果您使用XML::LibXML SAX 解析器,XML::SAX 将在幕后使用。
【讨论】: