PHP | XMLReader setParserProperty() Function

Last Updated : 25 Apr, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

The XMLReader::setParserProperty() function is an inbuilt function in PHP which is used to set parser options. This function can be used to validate the document.
Syntax: 
 

bool XMLReader::setParserProperty( int $property, bool $value )


Parameters: This function accepts two parameters as mentioned above and described below: 
 

  • $property: It specifies an integer corresponding to one of Parser Option constants as given below: 
    • XMLReader::LOADDTD (1) This will load DTD but does not validate.
    • XMLReader::DEFAULTATTRS (2) This will load DTD and default attributes but does not validate.
    • XMLReader::VALIDATE (3) This will load DTD and validate while parsing.
    • XMLReader::SUBST_ENTITIES (4) This will substitute entities and expand references.
  • $value: It specifies whether to enable or disable the property.


Return Value: This function returns TRUE on success or FALSE on failure.
Below examples illustrate the XMLReader::setParserProperty() function in PHP:
Example 1: 
 

  • data.xml 
     
html
<?xml version="1.0" encoding="utf-8"?>
<div>
    <h1> Sample XML </h1>
</div>

  •  
  • index.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.';
}
?>

  •  
  • Output: 
     
Property is set.


Program 2: 
 

  • data.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>

  •  
  • index.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>";
        }
    }
}
?>

  •  
  • Output: 
     
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


Reference: https://www.php.net/manual/en/xmlreader.setparserproperty.php
 


Next Article

Similar Reads