Résumer en deux étapes:
- Utilisez Tidy pour transformer "sans HTML" en « bon XHTML ".
- Utilisez XML Parser pour analyser XHTML en XML par SAX API.
Utilisez d'abord Tidy (!), Pour transformer "HTML libre" en XHTML (ou lorsque vous ne pouvez pas faire confiance à votre "soi-disant XHTML"). Voir la méthode cleanRepair. Il faut plus de temps, mais fonctionne avec de gros fichiers (!) ... Set some minutes as maximum execution time si trop grand.
Une autre option (pour travailler avec de gros fichiers) est de mettre en cache vos fichiers XHTML après avoir été cochés ou transformés en XHTML. Voir la méthode repairfile de Tidy. Avec un "XHTML de confiance", utilisez SAX ... Comment utiliser SAX avec PHP?
XML Parse avec un SAX standard API, que PHP est mis en œuvre par LibXML (voir LibXML2 à xmlsoft.org), et son interface est le PHP's XML Parser, qui est proche de l'API standard SAX.
Une autre façon d'utiliser le "SAX de LibXML2", avec une autre interface (un PHP iterator au lieu de l'interface SAX traditionnelle), est d'utiliser XMLReader. Voir this explanation about "XMLReader use SAX". Oui, les termes "SAX" ou "API SAX" ne sont pas exprimés dans le manuel PHP (!!). Voir this old but good introduction.
salut, je suis actuellement à la recherche d'un tel moi-même. Je me demande si vous utilisez encore HTML SAX Parser, ou si vous avez trouvé quelque chose d'autre? – aurora
Tidy est la "solution générale" unique pour "code HTML invalide", et PHP a un * SAX * intégré bon (!) Voir [ma réponse ci-dessous] (http://stackoverflow.com/a/17903058/287948). –
Voir une question similaire: http: // stackoverflow.com/q/15679103/287948 –