ID:               36379
 User updated by:  rele at gmx dot de
 Reported By:      rele at gmx dot de
-Status:           Feedback
+Status:           Open
 Bug Type:         SimpleXML related
-Operating System: Windows XP SP1
+Operating System: Windows XP SP2
-PHP Version:      5.2.0
+PHP Version:      5.2.3
 New Comment:

I tried the snapshot with Windows XP SP2 with my 2 examples and I am
getting exactly the same output, so nothing seems to have changed.


Previous Comments:
------------------------------------------------------------------------

[2007-06-25 23:43:04] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5.2-latest.tar.gz
 
For Windows (zip):
 
  http://snaps.php.net/win32/php5.2-win32-latest.zip

For Windows (installer):

  http://snaps.php.net/win32/php5.2-win32-installer-latest.msi



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

[2006-07-27 05:44:23] rele at gmx dot de

I tried the code with the 5.2.0RC2-dev Win32 build (Date => Jul 27 2006
04:15:19), but it produced the same result, and $parent[0] was always
NULL, too.


In addition I had to modify the second example code from 
  foreach($simplexml as &$parent) {
to
  foreach($simplexml as $parent) {
because it produced:
  PHP Fatal error: An iterator cannot be used with foreach by reference

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

[2006-07-27 02:00:36] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5.2-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5.2-win32-latest.zip



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

[2006-05-10 20:11:35] rele at gmx dot de

Description:
------------
Maybe it will be clearer if I use type casting.
As you can see in the result output, there is no array index 0 in each
parent which should store the text value of the first child, like there
are for all childs.
Especially not for parent 1a "ParentText " and 1c " ".

The attributes are fine, either by direct access $parent['style'] or by
using $parent->attributes().

But $parent[0] is always NULL.


Reproduce code:
---------------
$test_simplexml_errors_svg = <<<EOD
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd";[
  <!ENTITY E1 'font-size:7pt'>
]>
<svg id="svg_output" version="1.1" xmlns="http://www.w3.org/2000/svg";
viewBox="-2 -7 1561 708">
  <text id="1a" style="&E1;" x="300" y="100">ParentText <tspan id="2a"
dy="12" x="310">ChildText1</tspan><tspan id="3a" dy="12" x="350">
</tspan></text>
  <text id="1b" style="&E1;" x="400" y="200"><tspan id="2b" dy="12"
x="410">ChildText1</tspan><tspan id="3b" dy="12" x="450">
</tspan></text>
  <text id="1c" style="&E1;" x="500" y="300"> <tspan id="2c" dy="12"
x="510">ChildText1</tspan><tspan id="3c" dy="12"
x="550">ChildText2</tspan></text>
</svg>
EOD;

$simplexml = simplexml_load_string($test_simplexml_errors_svg);
foreach($simplexml as &$parent) {
  echo 'parent ', $parent->getName(), ' ', $parent['id'], ' = "',
(string) $parent, '"', "\n";
  print_r($parent);
  foreach($parent as $child) {
    echo ' child ', $child->getName(), ' ', $child['id'], ' = "',
(string) $child, '"', "\n";
    print_r($child);
  }
}

Actual result:
--------------
parent text 1a = "ParentText "
SimpleXMLElement Object
(
    [EMAIL PROTECTED] => Array
        (
            [id] => 1a
            [style] => font-size:7pt
            [x] => 300
            [y] => 100
        )
    [tspan] => Array
        (
            [0] => ChildText1
            [1] => SimpleXMLElement Object
                (
                    [EMAIL PROTECTED] => Array
                        (
                            [id] => 3a
                            [dy] => 12
                            [x] => 350
                        )
                    [0] => 
                )
        )
)
 child tspan 2a = "ChildText1"
SimpleXMLElement Object
(
    [EMAIL PROTECTED] => Array
        (
            [id] => 2a
            [dy] => 12
            [x] => 310
        )
    [0] => ChildText1
)
 child tspan 3a = "
"
SimpleXMLElement Object
(
    [EMAIL PROTECTED] => Array
        (
            [id] => 3a
            [dy] => 12
            [x] => 350
        )
    [0] => 
)
parent text 1b = ""
SimpleXMLElement Object
(
    [EMAIL PROTECTED] => Array
        (
            [id] => 1b
            [style] => font-size:7pt
            [x] => 400
            [y] => 200
        )
    [tspan] => Array
        (
            [0] => ChildText1
            [1] => SimpleXMLElement Object
                (
                    [EMAIL PROTECTED] => Array
                        (
                            [id] => 3b
                            [dy] => 12
                            [x] => 450
                        )
                    [0] => 
                )
        )
)
 child tspan 2b = "ChildText1"
SimpleXMLElement Object
(
    [EMAIL PROTECTED] => Array
        (
            [id] => 2b
            [dy] => 12
            [x] => 410
        )
    [0] => ChildText1
)
 child tspan 3b = "
"
SimpleXMLElement Object
(
    [EMAIL PROTECTED] => Array
        (
            [id] => 3b
            [dy] => 12
            [x] => 450
        )
    [0] => 
)
parent text 1c = " "
SimpleXMLElement Object
(
    [EMAIL PROTECTED] => Array
        (
            [id] => 1c
            [style] => font-size:7pt
            [x] => 500
            [y] => 300
        )
    [tspan] => Array
        (
            [0] => ChildText1
            [1] => ChildText2
        )
)
 child tspan 2c = "ChildText1"
SimpleXMLElement Object
(
    [EMAIL PROTECTED] => Array
        (
            [id] => 2c
            [dy] => 12
            [x] => 510
        )
    [0] => ChildText1
)
 child tspan 3c = "ChildText2"
SimpleXMLElement Object
(
    [EMAIL PROTECTED] => Array
        (
            [id] => 3c
            [dy] => 12
            [x] => 550
        )
    [0] => ChildText2
)

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

[2006-02-15 06:55:52] [EMAIL PROTECTED]

print_r (and var_dump) isn't a reliable method for checking, 
what's "inside" a simplexml object.

Please check with an iterator, if there's really something 
missing and provide a reproducable script.

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

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/36379

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

Reply via email to