Updated July 3, 2023
Introduction to PHP XML Reader
In PHP, the XML Reader extension provides a technique for parsing XML called the XML Reader. This pull-parser or stream-based XML parser allows for creating an XML parser that can read and retrieve specific parts of an XML document. The XML Reader enables various operations such as retrieving attributes based on their name, namespace, or index, parsing elements using attribute names, namespaces, or indices, parsing elements without navigating to inner levels, obtaining the value of the current node, setting additional properties to the XML parser, and validating the XML document.
Syntax:
The syntax to declare XML Reader is as follows:
XMLReader();
Working of XML Reader
Working of XML Reader is as follows:
- With the XML Reader, it is possible to retrieve a specific part of an XML document based on the current node.
- Attributes in XML can be obtained using XML Reader by specifying their name, namespace, or index.
Similarly, elements in XML can be parsed using XML Reader by specifying the attribute’s name, namespace, or index. - One advantage of using XML Reader is that elements can be parsed without navigating into inner levels.
- You can obtain the current node’s value using the XML Reader, allowing you to access the content within the XML document.
- XML Reader also allows for setting additional properties to the XML parser, providing flexibility and customization options.
- Lastly, XML Reader supports XML document validation, allowing you to ensure the document complies with a specific schema or structure.
Examples of PHP XML Reader
Following are the examples are given below:
Example #1
PHP program to parse an XML document and retrieve the contents of the XML document using XML Reader in PHP:
Code:
<?php
//creating an XML documents that is to be parsed using XML reader to retrieve the contents
$xmlDocument = '<?xml version="1.0"?>
<books>
<book ID="1">
<bookname>The Cobra</bookname>
<genre>Thriller</genre>
</book>
<book ID="2">
<bookname>The Killer</bookname>
<genre>Suspense</genre>
</book>
<book ID="3">
<bookname>The Popoye</bookname>
<genre>Comedy</genre>
</book>
</books>';
//declaring an instance of XML Reader
$xml = new XMLReader();
$xml->XML($xmlDocument);
//parsing the contents of the XML document and retrieving the required contents from the document
echo "The details of the books retrieved from the XML documents are:";
while( $xml->read() )
{
if($xml->name == "book")
{
print "Book ID:" . $xml->getAttribute("ID") . "<br/>";
print $xml->readInnerXML() . "<br/>";
$xml->next();
}
}
?>
Output:
The program’s objective is to parse an XML document using an XML Reader to extract and retrieve specific content. The initial step involves creating an instance of the XML Reader, which will handle the reading and parsing of the XML document. Subsequently, the XML document is supplied to the XML Reader for parsing. The XML Reader then traverses through the document, providing access to various elements and attributes.
Example #2
PHP program to parse an XML document and retrieve the contents of the XML document using XML Reader in PHP:
Code:
<?php
//creating an XML documents that is to be parsed using XML reader to retrieve the contents
$xmlDocument = '<?xml version="1.0"?>
<capital>
<country ID="1">
<countryname>India</countryname>
<capital>New Delhi</capital>
</country>
<country ID="2">
<countryname>Nepal</countryname>
<capital>Katmandu</capital>
</country>
<country ID="3">
<countryname>SriLanka</countryname>
<capital>Columbo</capital>
</country>
<country ID="4">
<countryname>Bangladesh</countryname>
<capital>Dhaka</capital>
</country>
<country ID="5">
<countryname>Pakisthan</countryname>
<capital>Islamabad</capital>
</country>
</capital>';
//declaring an instance of XML Reader
$xml = new XMLReader();
$xml->XML($xmlDocument);
//parsing the contents of the XML document and retrieving the required contents from the document
echo "The details of the capital cities retrieved from the XML document are:";
while( $xml->read() )
{
if($xml->name == "country")
{
print "Country code:" . $xml->getAttribute("ID") . "<br/>";
print $xml->readInnerXML() . "<br/>";
$xml->next();
}
}
?>
Output:
Example #3
PHP program to parse an XML document and retrieve the contents of the XML document using XML Reader in PHP:
Code:
<?php
//creating an XML documents that is to be parsed using XML reader to retrieve the contents
$xmlDocument = '<?xml version="1.0"?>
<socialnetworking>
<website ID="1">
<websitename>Facebook</websitename>
<address>www.facebook.com</address>
</website>
<website ID="2">
<websitename>Instagram</websitename>
<address>www.instagram.com</address>
</website>
<website ID="3">
<websitename>Twitter</websitename>
<address>www.twitter.com</address>
</website>
<website ID="4">
<websitename>Youtube</websitename>
<address>www.youtube.com</address>
</website>
<website ID="5">
<websitename>Orkut</websitename>
<address>www.orkut.com</address>
</website>
</socialnetworking>';
//declaring an instance of XML Reader
$xml = new XMLReader();
$xml->XML($xmlDocument);
//parsing the contents of the XML document and retrieving the required contents from the document
echo "The details of the social networking sites retrieved from the XML document are:";
while( $xml->read() )
{
if($xml->name == "webiste")
{
print "Webiste address:" . $xml->getAttribute("address") . "<br/>";
print $xml->readInnerXML() . "<br/>";
$xml->next();
}
}
?>
Output:
Conclusion
In this article, we have learned the concept of XML Reader to parse the contents of an XML document and retrieve them through definition, syntax, and working of XML Reader in PHP through programming examples and their outputs.
Recommended Articles
This is a guide to PHP XML Reader. Here we also discuss the introduction and working of xml reader along with different examples and its code implementation. You may also have a look at the following articles to learn more –