PHP | Función DOMDocument validar()

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

Publicación traducida automáticamente

Artículo escrito por gurrrung y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *