Bonjour tout le monde,
Je suis en train de coder mon moteur de template (pas très original
tout ca...) basé sur du XML. Jusque là ca marche. Seulement, dans les
pages que j'utilise pour tester toutes les fonctionnalités, il y a des
xHTML entities (genre
& nbsp;) et le parseur DOM de PHP5 est facilement vexé.
Pas de problème me direz vous : " plutôt que
loadXML, utilise
loadHTMLFile, et tout se passera bien !
"
En fait le problème est que j'ai aussi
définit un espace de nom pour certaines de mes balises (avec le schéma valide correspondant et tout et tout, oui monsieur

) donc je ne peux plus charger en HTML !
J'ai trouvé deux solutions, mais aucune des deux ne me convient :
- Ne pas mettre d'entités (je ne vous explique pas pourquoi ca ne me va pas)
- mettre le membre resolveExternals à true (et donc charger le DTD à partir du site du W3C
Le second cas fait bien que tout marche, mais le temps de chargement d'une simple page HTML prend entre 5 et 20secondes...
un hack
est proposé ici mais il suppose que l'on ait la main sur le serveur !
je me suis déjà passé d'un parseur SAX car il n'était pas dans
l'installe de base, alors mettre des fichiers dans /etc/xml/, j'aimerai
éviter, et puis ca ralentit toujours...
la solution d'ajouter les entités à tous mes fichiers XML, pourquoi
pas, mais je vais devoir créer un générateur plus rapidement que prévu,
parce que j'ai déjà 2 schémas XML dans la balise racine, alors ca va
vite faire du 20 lignes sur chaque page... et puis si mon template est
composé de 10 fichiers, ca risque de vite ralentir le moteur... L'idéal
serait de définir ces entités à la création de mon objet DomDocument
mais je n'ai pas trouvé comment faire...
Quelqu'un a une solution ?
...
une bonne idée ?
...
une idée ?
...
10 balles ?

A votre bon coeur M'sieur dame !