PHP | XMLReader setParserProperty() Function
Last Updated :
28 Apr, 2025
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:
html
<?xml version="1.0" encoding="utf-8"?>
<div>
<h1> Sample XML </h1>
</div>
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.';
}
?>
Property is set.
Program 2:
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>
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>";
}
}
}
?>
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
Explore
Basics
Array
OOPs & Interfaces
MySQL Database
PHP Advance