Un peu nouveau pour l'analyse PHP ici, mais je n'arrive pas à obtenir le DomDocument de PHP pour retourner ce qui est clairement un nœud identifiable. Le code HTML chargé viendra de la « net ne peut donc pas garantir nécessairement la conformité XML, mais je les opérations suivantes:PHP HTML DomDocument Problèmes getElementById
<?php
header("Content-Type: text/plain");
$html = '<html><body>Hello <b id="bid">World</b>.</body></html>';
$dom = new DomDocument;
$dom->preserveWhiteSpace = false;
$dom->validateOnParse = true;
/*** load the html into the object ***/
$dom->loadHTML($html);
var_dump($dom);
$belement = $dom->getElementById("bid");
var_dump($belement);
?>
Bien que je ne reçois aucune erreur, je reçois seulement ce qui suit en sortie:
object(DOMDocument)#1 (0) {
}
NULL
Ne devrais-je pas être en mesure de rechercher la balise <b>
, car elle possède en effet un identifiant?
J'ai effectivement validateOnParse. setIdAttribute ne s'appliquerait qu'à set, puis à la récupération suivante? Encore une fois cependant, le HTML sera fourni sur le Web, donc je suis à leur merci, mais juste en essayant un exemple. HTML5 n'a même pas de DTD, oui? – Xailor
"setIdAttribute ne s'appliquerait qu'à l'ensemble, puis à la récupération ultérieure?" -> Oui. HTML5 n'est pas encore terminé, donc il ne devrait pas encore avoir de DTD. –
La DTD serait '', mais l'appel de '$ dom-> validate()' fonctionnerait aussi.Mettre en place avec les erreurs ou essayer de générer du HTML valide (ce dernier est plus difficile qu'il n'y paraît ... :)) – Wrikken