The XMLReader::moveToAttributeNo() function is an inbuilt function in PHP which is used to move cursor to an attribute by index. This function is useful when a node is having multiple attributes but we want only specific attributes only.
Syntax:
bool XMLReader::moveToAttributeNo( int $index )
Parameters: This function accepts a single parameter $index which holds the position of the attribute.
Return Value: This function returns TRUE on success or FALSE on failure.
Below given programs illustrate the XMLReader::moveToAttributeNo() function in PHP:
Program 1: In this program, we will get value of second attribute of a specific node.
Filename: data.xml
<? xml version = "1.0" encoding = "utf-8" ?> < div > < h1 att1 = "first" attr2 = "second" > Text </ h1 > </ div > |
Filename: index.php
<?php // Create a new XMLReader instance $XMLReader = new XMLReader(); // Open the XML file $XMLReader ->open( 'data.xml' ); // Iterate through the XML nodes // to reach the h1 node $XMLReader ->read(); $XMLReader ->read(); $XMLReader ->read(); // Move to second attribute // of current node $XMLReader ->moveToAttributeNo(1); // Output the value to browser echo $XMLReader ->value; ?> |
Output:
second
Program 2: In this program, we will get the value of the first attribute of all the nodes.
Filename: data.xml
<? xml version = "1.0" encoding = "utf-8" ?> < div > < h1 attribute = "neveropen" > Text </ h1 > </ div > |
Filename: index.php
<?php // Create a new XMLReader instance $XMLReader = new XMLReader(); // Open the XML file $XMLReader ->open( 'data.xml' ); // Iterate through the XML nodes while ( $XMLReader ->read()) { if ( $XMLReader ->nodeType == XMLREADER::ELEMENT) { // Move to first attribute $XMLReader ->moveToAttributeNo(0); // Output the value to browser echo $XMLReader ->value; } } ?> |
Output:
neveropen
Reference: https://www.php.net/manual/en/xmlreader.movetoattributeno.php