La función XMLReader::setParserProperty() es una función incorporada en PHP que se utiliza para configurar las opciones del analizador. Esta función se puede utilizar para validar el documento.
Sintaxis:
bool XMLReader::setParserProperty( int $property, bool $value )
Parámetros: esta función acepta dos parámetros, como se mencionó anteriormente y se describe a continuación:
- $property: especifica un número entero correspondiente a una de las constantes de la opción Parser como se indica a continuación:
- XMLReader::LOADDTD (1) Esto cargará DTD pero no valida.
- XMLReader::DEFAULTATTRS (2) Esto cargará DTD y atributos predeterminados pero no valida.
- XMLReader::VALIDATE (3) Esto cargará DTD y validará durante el análisis.
- XMLReader::SUBST_ENTITIES (4) Esto sustituirá entidades y ampliará las referencias.
- $value: Especifica si habilitar o deshabilitar la propiedad.
Valor de retorno: esta función devuelve VERDADERO en caso de éxito o FALSO en caso de error.
Los siguientes ejemplos ilustran la función XMLReader::setParserProperty() en PHP:
Ejemplo 1:
- datos.xml
html
<?xml version="1.0" encoding="utf-8"?> <div> <h1> Sample XML </h1> </div>
- índice.php
php
<?php // Create a new XMLReader instance $XMLReader = new XMLReader(); // Open the XML file with sample XML $XMLReader->open('data.xml'); // Set the Parser Property $XMLReader->setParserProperty(XMLReader::VALIDATE, true); // Check if XMLReader::VALIDATE is set or not $isProperty = $XMLReader->getParserProperty(XMLReader::VALIDATE); if ($isProperty) { echo 'Property is set.'; } ?>
- Producción:
Property is set.
Programa 2:
- datos.xml
html
<?xml version="1.0"?> <!-- DTD rules to be followed by XML--> <!DOCTYPE html [ <!ELEMENT html (h1, p, heading, body)> <!ELEMENT h1 (#PCDATA)> <!ELEMENT p (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> <!-- XML starts from here --> <html> <h1>Hi</h1> <p>World</p> <heading>GeeksforGeeks</heading> <body>Web Portal for Geeks</body> </html>
- índice.php
php
<?php // Create a new XMLReader instance $XMLReader = new XMLReader(); // Open the XML file $XMLReader->open('data.xml'); // Enable the Parser Property $XMLReader->setParserProperty(XMLReader::VALIDATE, true); // Iterate through the XML nodes while ($XMLReader->read()) { if ($XMLReader->nodeType == XMLREADER::ELEMENT) { // Check if XML is valid or not $isValid = $XMLReader->isValid(); if ($isValid) { echo "YES ! this node is validated<br>"; } } } ?>
- Producción:
YES ! this node is validated YES ! this node is validated YES ! this node is validated YES ! this node is validated YES ! this node is validated
Referencia: https://www.php.net/manual/en/xmlreader.setparserproperty.php