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

¿Fue útil?

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)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top