DOMDocument: Ignorar ID de elementos duplicados
-
03-07-2019 - |
Pregunta
Estoy poniendo algo de contenido de la página (que se ha ejecutado a través de Tidy, pero no tiene por qué serlo si es una fuente de problemas) en DOMDocument
utilizando DOMDocument :: loadHTML
.
Se están produciendo varios errores:
ID x ya definido en Entidad, línea X
¿Hay alguna forma de hacer que DOMDocument
(o Tidy) ignore o elimine los ID de elementos duplicados, de modo que realmente cree el DOMDocument
?
Gracias. :)
Solución
Una búsqueda rápida sobre el tema revela este informe de error (incorrecto):
http://bugs.php.net/bug.php?id=46136
La última respuesta dice lo siguiente:
Estás usando reglas de HTML 4 para cargar un Documento XHTML. O usa la carga () método para analizar como XML o el Función libxml_use_internal_errors () ignorar las advertencias.
No puedo estar seguro de si se encuentra con este problema por los mismos motivos, ya que no incluyó una referencia a la página HTML que se está cargando. En cualquier caso, utilice libxml_use_internal_errors ()
debería al menos suprimir el error.
Los ID en los documentos HTML son generalmente único , por lo que la mejor solución aún estaría validando su documento, si es posible.
Otros consejos
Por definición, las ID son únicas. Si no lo están, debe usar clases en su lugar (ni nombres, donde corresponda).
Dudo que pueda forzar a las herramientas XML a ignorar las identificaciones duplicadas, lo que hará que manejen un documento XML no válido.
Use Excepciones para tratar identificaciones duplicadas y cambie el nombre de la segunda identificación. O tal vez, combine elementos en subelementos del mismo padre con la ID.
Las ID son únicas en un archivo XML (en el elemento raíz de XMLTree)