Domanda

Sto inserendo un po 'di contenuto della pagina (che è stato eseguito tramite Tidy, ma non è necessario se questa è una fonte di problemi) in DOMDocument utilizzando DOMDocument :: loadHTML .

Sta arrivando con vari errori:

  

ID x già definito in Entità, riga X

Esiste un modo per fare in modo che DOMDocument (o Tidy) ignori o elimini gli ID di elementi duplicati, quindi creerà effettivamente il DOMDocument ?

Grazie. :)

È stato utile?

Soluzione

Una rapida ricerca sull'argomento rivela questa (errata) segnalazione di bug:

http://bugs.php.net/bug.php?id=46136

L'ultima risposta indica quanto segue:

  

Stai usando le regole HTML 4 per caricare un file   Documento XHTML. Utilizzare il load ()   metodo per analizzare come XML o   funzione libxml_use_internal_errors ()   per ignorare gli avvisi.

Non posso essere sicuro se stai riscontrando questo problema per gli stessi motivi, dal momento che non hai incluso un riferimento alla pagina HTML da caricare. In ogni caso, usando libxml_use_internal_errors () dovrebbe almeno sopprimere l'errore.

Gli ID nei documenti HTML sono generalmente unici , quindi la migliore soluzione continuerebbe a convalidare il tuo documento, se possibile.

Altri suggerimenti

Per definizione, gli ID sono univoci. In caso contrario, utilizzare invece le classi (né i nomi, dove applicabile).
Dubito che tu possa forzare gli strumenti XML a ignorare gli ID duplicati, il che li farà gestire un documento XML non valido.

Utilizza le eccezioni per trattare gli ID duplicati e rinominare il secondo ID. O forse, combina elementi in sotto-elementi dello stesso genitore con l'ID.

Gli ID sono univoci in un file XML (nel rootElement di XMLTree)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top