PHP not have access to the LibXML2 SAX interface?

烂漫一生 提交于 2019-12-22 18:14:18

问题


PHP not have a "standard SAX" interface for event-driven XML parse, have a Expat one. Expat require --enable-libxml option... But LibXML2 have a good and fast standard SAX interface (!)... So, how to access the LibXML2's standard SAX interface with PHP?

There are a simple workaround to enable the SAX interface?


Related question: Is XMLReader a SAX parser, a DOM parser, or neither?

Terminology (to say the "same language" in the discussions):

  • event-driven XML parser: SAX and Expat, they was 1998's "competidors", but today (2013's) are only a "reference model for interfacing the parser implementation".

  • event-driven XML parser implementations: see LibXML2, expat.sourceforge, Oracle/Java/SAX, etc. They are "concrete implementations" (can generate binary code for the parser).

  • SAX interface: an abstraction based on the "SAX reference model", see saxproject.org and Wikipedia.

  • Expat interface: an abstraction based on the "Expat reference model", see jclark.com/xml and Wikipedia.

  • PHP's XML Parser conventions for an event-driven XML parser interface... Is a Expat interface but, it is over the Expat or the LibXML2 implementation??

  • PHP's SAX interface: not exist (!), but can be build as more one LibXML2 interface?

  • PHP's "other XML parser interfaces": remember that DomDocument, XSLTProcessor, etc. are PHP interfaces to the LibXML2 implementations.

PS: please edit this text for better or detailed explanations... Detailing "library interface": is a set of function names, methods and properties, used as "module interface" between PHP (for programmers abstrations) and a library implementation (drivers, etc. for assembler/binary concrete implementation).

来源:https://stackoverflow.com/questions/18656457/php-not-have-access-to-the-libxml2-sax-interface

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!