Edit report at https://bugs.php.net/bug.php?id=51837&edit=1

 ID:               51837
 Updated by:       php-bugs@lists.php.net
 Reported by:      cvb724 at yahoo dot ca
 Summary:          XMLReader cannot store values in arrays
-Status:           Feedback
+Status:           No Feedback
 Type:             Bug
 Package:          *General Issues
 Operating System: CentOS 5
 PHP Version:      5.3.2

 New Comment:

No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Open". Thank you.


Previous Comments:
------------------------------------------------------------------------
[2010-05-18 13:20:38] m...@php.net

Works fine here:

$ php -r '$r=new XMLReader(); 
$r->open("http://www.w3.org/TR/xmldsig-core/signature-example-rsa.xml";); 
while($r->read()){ if($r->nodeType==XMLReader::TEXT) $var[] = $r->value;} 
print_r($var);'
Array
(
    [0] => 60NvZvtdTB+7UnlLp/H24p7h4bs=
    [1] => 
    juS5RhJ884qoFR8flVXd/rbrSDVGn40CapgB7qeQiT+rr0NekEQ6BHhUA8dT3+BC
    TBUQI0dBjlml9lwzENXvS83zRECjzXbMRTUtVZiPZG2pqKPnL2YU3A9645UCjTXU
    +jgFumv7k78hieAGDzNci+PQ9KRmm//icT7JaYztgt4=
  
    [2] => 
          uCiukpgOaOmrq1fPUTH3CAXxuFmPjsmS4jnTKxrv0w1JKcXtJ2M3akaV1d/karvJ
          lmeao20jNy9r+/vKwibjM77F+3bIkeMEGmAIUnFciJkR+ihO7b4cTuYnEi8xHtu4
          iMn6GODBoEzqFQYdd8p4vrZBsvs44nTrS8qyyhba648=
        
    [3] => 
          AQAB
        
    [4] => 
        CN=Merlin Hughes,O=Baltimore Technologies\, Ltd.,ST=Dublin,C=IE
      
    [5] => 
          CN=Test RSA CA,O=Baltimore Technologies\, Ltd.,ST=Dublin,C=IE
        
    [6] => 970849928
    [7] => 
        MIICeDCCAeGgAwIBAgIEOd3+iDANBgkqhkiG9w0BAQQFADBbMQswCQYDVQQGEwJJ
        RTEPMA0GA1UECBMGRHVibGluMSUwIwYDVQQKExxCYWx0aW1vcmUgVGVjaG5vbG9n
        aWVzLCBMdGQuMRQwEgYDVQQDEwtUZXN0IFJTQSBDQTAeFw0wMDEwMDYxNjMyMDda
        Fw0wMTEwMDYxNjMyMDRaMF0xCzAJBgNVBAYTAklFMQ8wDQYDVQQIEwZEdWJsaW4x
        JTAjBgNVBAoTHEJhbHRpbW9yZSBUZWNobm9sb2dpZXMsIEx0ZC4xFjAUBgNVBAMT
        DU1lcmxpbiBIdWdoZXMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALgorpKY
        Dmjpq6tXz1Ex9wgF8bhZj47JkuI50ysa79MNSSnF7SdjN2pGldXf5Gq7yZZnmqNt
        Izcva/v7ysIm4zO+xft2yJHjBBpgCFJxXIiZEfooTu2+HE7mJxIvMR7buIjJ+hjg
        waBM6hUGHXfKeL62QbL7OOJ060vKssoW2uuPAgMBAAGjRzBFMB4GA1UdEQQXMBWB
        E21lcmxpbkBiYWx0aW1vcmUuaWUwDgYDVR0PAQH/BAQDAgeAMBMGA1UdIwQMMAqA
        CEngrZIVgu03MA0GCSqGSIb3DQEBBAUAA4GBAHJu4JVq/WnXK2oqqfLWqes5vHOt
        fX/ZhCjFyDMhzslI8am62gZedwZ9IIZIwlNRMvEDQB2zds/eEBnIAQPl/yRLCLOf
        ZnbA8PXrbFP5igs3qQWScBUjZVjik748HU2sUVZOa90c0mJl2vJs/RwyLW7/uCAf
        C/I/k9xGr7fneoIW
      
)

------------------------------------------------------------------------
[2010-05-17 10:14:45] cvb724 at yahoo dot ca

Description:
------------
I have tried every way possible to store the values from an XML sheet using 
XMLReader in an array. The XML sheet is valid. I have tried this on two systems 
now, both with the same problem. Colleagues cannot find anything wrong either. 
Example code is below:

CODE:

$reader = new XMLReader();
$url = 'http://xml.com/info.php'; // not a real URL
        
$reader->open($url);
        
$i = 0;
$j = 0;
        
while ($reader->read())
{
        if ($reader->nodeType == XMLReader::ELEMENT)
        {
                $attr[$i] = $reader->getAttribute("name"); // does not store 
anything
                $attr .= $reader->getAttribute("name"); // stores perfectly
                i++;
        }
        if ($reader->nodeType == XMLReader::TEXT)
        {
                $val[$j] = $reader->value; // performs the same as above
                $val .= $reader->value;
                $j++;
        }
}

Test script:
---------------
$reader = new XMLReader();
$url = 'http://xml.com/info.php'; // insert a real URL to test
        
$reader->open($url);
        
$i = 0;
        
while ($reader->read())
{       
        if ($reader->nodeType == XMLReader::TEXT)
        {
                $val[$i] = $reader->value; // does not work
                //$val .= $reader->value; // for demonstration only, works 
properly
                $i++;
        }
}

print_r($val);

Expected result:
----------------
When using a valid URL and XML sheet, "print_r" should print an array of all 
values stored.

Actual result:
--------------
Instead, the entire array is empty. As soon as you use .= instead of storing in 
an array, everything is printed fine simply using "echo".


------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=51837&edit=1

Reply via email to