simplexml_load_file savexml print ejemplo php domdocument tidy

php - savexml - DOMDocument: Ignorar identificadores de elementos duplicados



savexml php (3)

Por definición, los ID son únicos. Si no lo son, debe usar clases en su lugar (ni nombres, donde corresponda).
Dudo que pueda obligar a las herramientas XML a ignorar los ID duplicados, lo que los hará manejar un documento XML no válido.

Estoy colocando contenido de la página (que se ha ejecutado a través de Tidy, pero no necesita ser si esto es una fuente de problemas) en DOMDocument usando DOMDocument::loadHTML .

Se viene con varios errores:

ID x ya definido en Entity, línea X

¿Hay alguna manera de hacer que DOMDocument (o Tidy) ignore o elimine los identificadores de elemento duplicados, por lo que realmente creará DOMDocument ?

Gracias. :)


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á utilizando reglas HTML 4 para cargar un documento XHTML. Utilice el método load () para analizar XML o la función libxml_use_internal_errors () para ignorar las advertencias.

No puedo estar seguro de si se encuentra con este problema por las mismas razones, ya que no incluyó una referencia a la página HTML que se está cargando. En cualquier caso, el uso de libxml_use_internal_errors() debería al menos suprimir el error.

Las ID en documentos HTML son generalmente únicas , por lo que la mejor solución sería validar su documento, si es posible.


Use Excepciones para tratar ID duplicados y cambie el nombre de la segunda ID. O tal vez, combine elementos en subelementos del mismo padre con la ID.

Los ID son únicos en un archivo XML (en el rootElement de XMLTree)