DOMDocument et HTML 5

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : DOMDocument et HTML 5

Re: DOMDocument et HTML 5

par stealth35 » 11 mai 2011, 15:38

c'etait déjà comme ça, le problème c'est que les gens on tendance a faire load ou loadXML a la place loadHTML et loadHTMLFile, pusique ca n'existait pas sous PHP 4

Re: DOMDocument et HTML 5

par supernicky » 11 mai 2011, 15:33

j'ai trouvé !!!

j'avais une fonction qui permettait d'afficher la page à la fin des traitements, où il était utilisé la fonction de DOMDocument saveXML.
Je l'ai remplacé par saveHTML et, miracle, ma page s'affiche sans faire de reference à un dtd...

Par contre je n'ai aucun souvenir de pourquoi je traitais le html en chaine xml (le projet remonte à 4-5 ans).
j'espère que cela ne va pas avoir de répercussion ailleurs.

Pour résumé :
on peux quand même utiliser la fonction getElementById sans avoir recours ni à validate ni à un dtd.

Par contre je suis sûr (à 95%) que cela n'a pas toujours été le cas dans les versions de php (je suis en 5.3) et me rappelle avoir galéré avec ça...

Re: DOMDocument et HTML 5

par stealth35 » 11 mai 2011, 15:12

au delà de ce que dit la doc t'as essaye quand même ?

Re: DOMDocument et HTML 5

par supernicky » 11 mai 2011, 14:51

ça va pas être trop possible : trop de référence à getElementById dans le framework...
:-(

Re: DOMDocument et HTML 5

par stealth35 » 11 mai 2011, 14:20

fait un coup de xpath si ca marche pas

Re: DOMDocument et HTML 5

par supernicky » 11 mai 2011, 14:17

effectivement pour le html, cela ne semble pas nécessaire (je viens de faire le test en enlevant les validate) mais pour le xml oui :

http://php.net/manual/en/domdocument.getelementbyid.php

j'utilise des fois le html comme une chaine xml : c'est pour ça que j'ai fait la bourde.

Mais cela ne change pas le probleme car comme c'est dit dans la doc (http://www.php.net/manual/en/domdocumen ... php#100402) : Please note that if your HTML does not contain a doctype declaration, then getElementById will always return null.

Re: DOMDocument et HTML 5

par stealth35 » 11 mai 2011, 13:54

Avec la classe Domdocument, si tu veux récupérer des elts par leur identifiant, il faut que le code HTML soit validé (avec la fonction validate).
Cela peux être fait seulement si ton code html se réfère à un dtd.
non pas besoin de validation

Re: DOMDocument et HTML 5

par supernicky » 11 mai 2011, 13:37

Avec la classe Domdocument, si tu veux récupérer des elts par leur identifiant, il faut que le code HTML soit validé (avec la fonction validate).
Cela peux être fait seulement si ton code html se réfère à un dtd.

Re: DOMDocument et HTML 5

par stealth35 » 11 mai 2011, 12:05

pas besoin de dtd pour naviguer dans le DOM

Re: DOMDocument et HTML 5

par supernicky » 11 mai 2011, 11:27

je savais qu'il n'y avait pas de DTD pour le HTML 5 mais comme je veux juste une dtd pour pouvoir naviguer dans le code html, je vais rajouter des attributs dans un dtd que j'ai en local.
Par exemple le type email pour les input.

Mais bon ce n'est qu'une solution temporaire...

Re: DOMDocument et HTML 5

par stealth35 » 11 mai 2011, 11:06

la libxml2 (donc DOMDocument et SimpleXML) ne gère pas le HTML 5, sinon non il n'y pas de dtd pour le html5

DOMDocument et HTML 5

par supernicky » 11 mai 2011, 10:23

Bonjour,

je travaille avec la classe DOMDocument pour manier les fichiers HTML. J'ai besoin de valider ces documents pour accéder aux différentes balises/identififant (fonction validate()).

Jusqu'ici, j'utilisais les DTD liés à la version du html pour valider les doc.

Je souhaitais passer en HTML 5 et c'est là le problème car il n'y a plus de DTD pour cette norme.

Comment faire ?
Quelqu'un a déjà été confronté à ce problème ?