The attribute is not a child XML node. For walking through attributes
SimpleXML has $node->attributes() method.
And if($node->attributes()) check works as expected.
So I think $node->children() must be just for child XML nodes, not for
attributes (there is no sense to give back results for attributes since we
have attributes() method).
Vesselin Kenashkov
On 5/22/07, kepbepos kepbepos <[EMAIL PROTECTED]> wrote:
Hi,
I'm not an expert, but in your example
--------
> $str = '<rootnode><subnode></subnode></rootnode>';
> $x = new SimpleXMLElement($str);
>
> if($x->subnode->children())
> print 'yes';
> else
> print 'no';
> ---------
> will print 'no';
ok no children
If the
> $str='<rootnode><subnode><newnode></newnode></subnode></rootnode>';
> it will print yes.
ok has one child: <newnode>
But the same will happen if the subnode has an attribute like:
> $str = '<rootnode><subnode id="2"></subnode></rootnode>';
I think is correct, in fact (if I'm right) an attribute is a child.
Following DOM the tree is:
rootnode
|
subnode
|
id
Here an example explaining that
http://www.w3schools.com/dom/nodetree.gif
Please someone else to confirm.
See you