----- Original Message ----- 

> A similar problem regarding attributes, that got classified as a doc
> bug, but I
> don't think is one: http://bugs.php.net/42083

> If you're fishing around that area of the code, though, perhaps it is
> quite
> obvious to you where/how a patch should be made?

  I would recommend that you re-test that in 5.3.6, as there were a few 
changes.  I don't know what they were specifically, as I never looked at the 
5.2 SimpleXML code.

  But I also see one issue with your example.

You look for all child elements in namespace 'http://localhost/a' as follows:

foreach ($xml->children('http://localhost/a') as $elem) {
        unset($elem['attr']);
        $elem['attr']="new";
        $elem['attr']="three";
        echo $elem['attr']."\n";
}

I would expect the children() method to return just the last two elements of 
your input XML:

<root xmlns="http://localhost/a"; xmlns:ns="http://localhost/a";>
<elem attr="abc"/>
<elem ns:attr="abc"/>
<ns:elem attr="abc"/>
<ns:elem ns:attr="abc"/>
</root>

as the last two elements are the only ones in the 'http://localhost/a' 
namespace.


  But this might be affected by the fact that you specified a namespace on the 
constructor.  I'm not entirely sure what specifying a namespace on the 
constructor does, but I feel it is best avoided (and it isn't described in the 
docs).  So rather than:

$xml = simplexml_load_string($str,'SimpleXMLElement',0,'http://localhost/a');

just:

$xml = simplexml_load_string($str);



Tom


-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to