php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Doc Bug #64470 XMLReader::next($localname) moves cursor even if there is no more $localname
Submitted: 2013-03-20 17:05 UTC Modified: 2021-01-13 13:29 UTC
Votes:1
Avg. Score:3.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:0 (0.0%)
Same OS:0 (0.0%)
From: halil dot ozgur at gmail dot com Assigned: cmb (profile)
Status: Closed Package: XML Reader
PHP Version: Irrelevant OS: Irrelevant
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: halil dot ozgur at gmail dot com
New email:
PHP Version: OS:

 

 [2013-03-20 17:05 UTC] halil dot ozgur at gmail dot com
Description:
------------
---
From manual page: http://www.php.net/xmlreader.next
---
I'm not sure if this obvious, or is not a bug. next() method when invoked with a 
parameter (with $localname non-empty) moves the cursor even if there is no more 
$localname items and next() returns false. This in fact proved helpful for me 
while implementing a custom iterator. But it could still be useful to include this 
information in the documentation.

Test script:
---------------
<?php
$itemTag = "test";
$xml = <<<EOX
<?xml version="1.0" encoding="utf-8"?>
<tests>
    <test>
        <lorem>11111</lorem>
    </test>
    <test>
        <lorem>22222</lorem>
    </test>
</tests>
EOX;
$reader = new \XMLReader();
$reader->XML($xml);
// move to the first element
while ($reader->read() && $reader->name !== $itemTag) {}
echo "Current: " . $reader->name . "\n";
$reader->next($itemTag);
$reader->next($itemTag);
echo "Current: " . $reader->name . "\n";


Expected result:
----------------
Current: test
Current: test

Actual result:
--------------
Current: test
Current:

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2017-01-28 12:19 UTC] cmb@php.net
-Package: Documentation problem +Package: XML Reader
 [2020-10-07 14:13 UTC] cmb@php.net
-Status: Open +Status: Verified
 [2020-10-07 14:13 UTC] cmb@php.net
Indeed, if there are no more respective nodes, the cursor is moved
to the end of the document.  While the underlying
xmlTextReaderName()'s result distinguished that (-1) from other
error conditions (0), XMLReader::next() returns FALSE in either
case.
 [2021-01-13 13:26 UTC] cmb@php.net
-Assigned To: +Assigned To: cmb
 [2021-01-13 13:29 UTC] cmb@php.net
-Status: Verified +Status: Closed
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sun Oct 27 16:01:27 2024 UTC