133 votes

Erreurs DOMDocument PHP / avertissements sur les balises html5

J'ai essayé d'analyser HTML5-code afin que je puisse régler les attributs/valeurs dans le code, mais il semble DOMDocument(PHP5.3) ne prend pas en charge les balises comme l' <nav> et <section>.

Est-il possible d'analyser ce que HTML en PHP et manipuler le code?


Code de reproduire:

<?php
$dom = new DOMDocument();
$dom->loadHTML("<!DOCTYPE HTML>
<html><head><title>test</title></head>
<body>
<nav>
  <ul>
    <li>first
    <li>second
  </ul>
</nav>
<section>
  ...
</section>
</body>
</html>");

Erreur

Warning: DOMDocument::loadHTML(): Tag nav non valide dans l'Entité, en ligne: 4 /home/wbkrnl/public_html/new-mvc/1.php sur la ligne 17

Warning: DOMDocument::loadHTML(): Tag section invalide dans l'Entité, en ligne: 10 /home/wbkrnl/public_html/new-mvc/1.php sur la ligne 17

236voto

lonesomeday Points 95456

Non, il n'y a aucun moyen de spécifier un type de document particulier à utiliser ou de modifier les exigences du modèle existant.

Votre meilleure solution réalisable consistera à désactiver le rapport d’erreur avec libxml_use_internal_errors :

 $dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTML('...');
libxml_clear_errors();
 

ou utilisez html5lib au lieu de l'extension DOM.

25voto

Ilker Mutlu Points 28

Tu pourrais aussi faire

 @dom->loadHTML($htmlString);
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X