PHP XML Reader

王林
王林Original
2024-08-29 13:09:47437browse

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.

ADVERTISEMENT Popular Course in this category XML - Specialization | 11 Course Series

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

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:

PHP XML Reader

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:

PHP XML Reader

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:

PHP XML Reader

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.

The above is the detailed content of PHP XML Reader. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:PHP XMLWriterNext article:PHP XMLWriter