Open In App

PHP | XMLReader setParserProperty() Function

Last Updated : 03 May, 2021
Improve
Improve
Like Article
Like
Save
Share
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
 



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads