La función DOMDocument::validate() es una función incorporada en PHP que se utiliza para validar el documento en función de su DTD (Definición de tipo de documento). DTD define las reglas o la estructura que debe seguir el archivo XML y si un documento XML no sigue este formato, esta función devolverá falso.
Sintaxis:
bool DOMDocument::validate( void )
Parámetros: Esta función no acepta ningún parámetro.
Valor devuelto: esta función devuelve VERDADERO si el documento sigue a la DTD o FALSO.
Los siguientes ejemplos ilustran la función DOMDocument::validate() en PHP:
Ejemplo 1:
<?php // Create a new DOMDocument $doc = new DOMDocument; // Load the XML with DTD rule to have // a root element with first, second, // and third as its three children $doc->loadXML("<?xml version=\"1.0\"?> <!DOCTYPE root [ <!ELEMENT root (first, second, third)> <!ELEMENT first (#PCDATA)> <!ELEMENT second (#PCDATA)> <!ELEMENT third (#PCDATA)> ]> <!-- Create a XML following the DTD --> <root> <first>Hello</first> <second>There</second> <third>World</third> </root>"); // Check if XML follows the DTD rule if ($doc->validate()) { echo "This document is valid!\n"; } ?>
Producción:
This document is valid!
Ejemplo 2:
<?php // Create a new DOMDocument $doc = new DOMDocument; // Load the XML $doc->loadXML("<?xml version=\"1.0\"?> <!DOCTYPE root [ <!ELEMENT root (one, two, three)> <!ELEMENT one (#PCDATA)> <!ELEMENT two (#PCDATA)> <!ELEMENT three (#PCDATA)> ]> <!-- Create a XML voilating the DTD --> <root> <one>Hello</one> <two>World</two> </root>"); if (!$doc->validate()) { echo "This document is not valid!"; } ?>
Producción:
This document is not valid!
Referencia: https://www.php.net/manual/en/domdocument.validate.php