DOMDocument: Ignorer les ID d'élément en double
-
03-07-2019 - |
Question
Je mets du contenu de page (qui a été exécuté via Tidy, mais ne doit pas nécessairement l'être s'il s'agit d'une source de problèmes) dans DOMDocument
à l'aide de DOMDocument :: loadHTML
.
Il y a diverses erreurs:
ID x déjà défini dans Entity, ligne X
Y a-t-il moyen de faire en sorte que DOMDocument
(ou Tidy) ignore ou supprime les ID d'élément en double, afin de créer le DOMDocument
?
Merci. :)
La solution
Une recherche rapide sur le sujet révèle ce rapport de bogue (incorrect):
http://bugs.php.net/bug.php?id=46136
La dernière réponse indique ce qui suit:
Vous utilisez les règles HTML 4 pour charger un Document XHTML. Soit utiliser la charge () méthode pour analyser en XML ou la fonction libxml_use_internal_errors () ignorer les avertissements.
Je ne sais pas si vous rencontrez ce problème pour les mêmes raisons, car vous n'avez pas inclus de référence à la page HTML en cours de chargement. Dans tous les cas, utilisez libxml_use_internal_errors ()
doit au moins supprimer l'erreur.
identifiants dans les documents HTML sont généralement uniques , la meilleure solution validerait donc toujours votre document, si possible.
Autres conseils
Par définition, les identifiants sont uniques. S'ils ne le sont pas, vous devez utiliser des classes (ni des noms, le cas échéant).
Je doute que vous puissiez forcer les outils XML à ignorer les ID en double, ce qui les obligera à gérer un document XML non valide.
Utilisez Exceptions pour traiter les ID en double et renommez le second ID. Ou alors, combinez les éléments des sous-éléments du même parent avec l’ID.
Lesidentifiants sont uniques dans un fichier XML (dans le rootElement de XMLTree)