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. :)

Était-ce utile?

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.

Les

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.

Les

identifiants sont uniques dans un fichier XML (dans le rootElement de XMLTree)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top