Como <section>
. ¿Hay algo que pueda hacer al respecto?PHP: DOMDocument loadHTML devuelve un error al usar etiquetas HTML5
Respuesta
Me he encontrado con este problema con las funciones DOMDoc y XSL de PHP. Básicamente, tienes que cargar el documento como XML. Esa es la única forma en que obtuve la etiqueta <video>
para que funcione.
Actualización: También puede tratar de añadir elementos a la & entidades <!DOCTYPE html5 >
, siempre y cuando $doc->resolveExternals = true
.
Pero luego tengo que use solo XML bien formado. :/ – Hamster
Se supone que Html5 está bien formado: P Puede probar $ doc-> resolveExternals = true; y luego coloque las etiquetas html5 que necesita en ]>, DomDoc obedecerá a los tipos-doc –
@James HTML5 no tiene que estar bien formado XML. Aún puede usar etiquetas de cierre automático sin el '/>', por ejemplo '' –
Phil
No sé si has probado la biblioteca en última instancia, señaló que en esta respuesta:
DOM parser that allows HTML5-style </ in <script> tag
Html5lib resuelto el mismo problema que estás teniendo para mí (que era el <aside>
y <nav>
etiquetas que desencadenan mis problemas)
Estaba usando esto para analizar fragmentos html, y la ventaja es que era un reemplazo directo para DOMDocument, ya que actualmente usa DOMDocument como el objeto de salida, por lo que no se rompió ninguna otra funcionalidad en mi implementación.
Hay una nota en la documentación de que están buscando alejarse de DOMDocument en el futuro.
html5lib para PHP se puede encontrar aquí: http://code.google.com/p/html5lib/downloads/detail?name=html5lib-php-0.1.tar.gz&can=2&q=
En el answer linked to above, hay más detalles sobre su uso.
tratar de ignorar el error:
En mis casos, tengo varios "widgets" en varios archivos que actúa como plantillas. Por ejemplo: template_header.html template_footer.html
<?php
//Load header
$dom = new DOMDocument();
@$dom->loadHTMLFile('template_header.html');
$xpath = new DOMXpath($dom);
$nodelist = $xpath->query('div[class="template-widget"]');
foreach($nodelist as $node){
echo $dom->saveHTML($node);
}
?>
Tenga en cuenta que $ dom-> loadhtmlfile tiene y '@' a ognore el error.
- 1. php DomDocument agrega etiquetas adicionales
- 2. DOMDocument PHP pegando etiquetas HTML
- 3. PHP DOMDocument :: loadHTML() [domdocument.loadhtml]: htmlParseEntityRef: no name in Entity
- 4. PHP DOMDocument error handling
- 5. Advertencia: DOMDocument :: loadHTML(): htmlParseEntityRef: expecting ';' en la Entidad,
- 6. ¿Cómo hacer que HTML5 funcione con DOMDocument?
- 7. DOMDocument en php
- 8. Iphone HTML5 Geolocalización siempre devuelve un error
- 9. Depurar un objeto DOMDocument en PHP
- 10. PHP DOMDocument - obtener código fuente HTML de CUERPO
- 11. PHP HTML DomDocument getElementById problems
- 12. PHP codificación con DOMDocument
- 13. PHP DOMDocument getElementsByTagname?
- 14. Dom loadHTML no funciona correctamente en un servidor
- 15. ¿Cómo evito que DOMDocument de Php codifique entidades html?
- 16. ¿Puedo obtener hermanos con DOMDocument de PHP?
- 17. PHP DOMDocument Namespaces
- 18. php DomDocument innerText
- 19. ¿Por qué DomDocument getElementsByTagName devuelve medio NodeList?
- 20. Obtiene elementos DOM por nombre de etiqueta con DOMDocument :: loadHTML y getElementsByTagName
- 21. Deshabilitar advertencias al cargar HTML no formado correctamente por DomDocument (PHP)
- 22. Redis devuelve un error al intentar guardar
- 23. Sangría con DOMDocument en PHP
- 24. Error DOMDocument de PHP Entidad 'nbsp' no definida
- 25. Devuelve un valor al usar jQuery.each()?
- 26. Deshabilitar la codificación de entidad html en PHP DOMDocument
- 27. Cómo evitar que PHP DomDocument "arregle" su cadena HTML
- 28. html5 Etiquetas de video sin llamar al reproductor quicktime
- 29. php DOMDocument añade <html> cabeceras con declaración DOCTYPE
- 30. DOMDocument :: saveHTML ($ domnode) en PHP 5.2?
Posible duplicado de [PHP DOMDocument errors/warnings on html5-tags] (http://stackoverflow.com/questions/6090667/php-domdocument-errors-warnings-on-html5-tags) – cweiske