php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #14500 Undefined property: name
Submitted: 2001-12-13 18:55 UTC Modified: 2001-12-14 04:18 UTC
From: agnieszkak at pi dot net dot pl Assigned:
Status: Closed Package: DOM XML related
PHP Version: 4.1.0 OS: Slackware 8.0
Private report: No CVE-ID: None
 [2001-12-13 18:55 UTC] agnieszkak at pi dot net dot pl
I've compiled PHP-4.1.0 with libxml2-2.4.2 on linux machine
with that options:
/configure --with-apache=../apache_1.3.22 --enable-trans-sid --with-mysql=/mysql 
--disable-magic-quotes --with-dom --with-qtdom --with-zlib --with-png 
--with-ttf --enable-safe-mode --enable-track-vars --with-xml

When I trie to use any domxml functions (below a part of php code taken from manual) I get error in my php_error_log 
like this:

"Undefined property:  name in example.php"
"Undefined property:  name in example.php"

// data file
$str = "<?xml version=\"1.0\"?><me><name>Joe
Cool</name><age>24</age><sex>male</sex></me>";
// create a document object
$dom = xmldoc($str);

// get reference to root node
$root = $dom->root();

// get name of node - "me"
echo $root->name;

// get children of node, as array
$children = $root->children();

I checked the same script with older version of php (4.0.6)and libxml2 (2.2.3) and it works.
Any ideas what I do wrong?

Agnieszka Kukalowicz 


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-12-13 23:04 UTC] mfischer@php.net
The interface has changed, the property is now named 'tagname'.

print_r($root) is your friend if you can't find what you're searching for (and the source of course).

Closing.
 [2001-12-14 03:44 UTC] agnieszkak at pi dot net dot pl
Thanks, but that doesn't solve my problem yet.
I used print_r($root)and indeed I can see that property changed name to "tagname". But thereis is no property "content".I use this xml document:

<?xml version=\"1.\">
<me><name>JoeCool</name><age>24</age><sex>male</sex></me>

And then I do
 $docTree = xmltree($myXML); (where $myXML contains the xml)
 print_r( $docTree );
 
What I get is: 

Array
(
    [0] => DomElement Object
        (
            [type] => 1
            [tagname] => name
            [0] => 3
            [1] => 137743960
        )

    [1] => DomElement Object
        (
            [type] => 1
            [tagname] => age
            [0] => 4
            [1] => 137744104
        )

    [2] => DomElement Object
        (
            [type] => 1
            [tagname] => sex
            [0] => 5
            [1] => 137744248
        )

But there is no property "content" like in older versions of libxml. How can I get the value of name, age and sex ?I 've 
searched the site php.net and there is no informations about any changes in libxml interface.
 [2001-12-14 04:18 UTC] mfischer@php.net
Documentation has not been updates because domxml is still experimental. Domxml now (or, it should) conform to the DOM2 API.

Try going for the children() nodes of the 'name' element.

Btw, my output with 4.1.0 looks like:

DomDocument Object
(
    [name] => 
    [url] => 
    [version] => 1.0
    [standalone] => -1
    [type] => 9
    [compression] => -1
    [charset] => 1
    [0] => 1
    [1] => 136076352
    [children] => Array
        (
            [0] => DomElement Object
                (
                    [type] => 1
                    [tagname] => me
                    [0] => 2
                    [1] => 136076472
                    [children] => Array
                        (
                            [0] => DomElement Object
                                (
                                    [type] => 1
                                    [tagname] => name
                                    [0] => 3
                                    [1] => 136076560
                                    [children] => Array
                                        (
                                            [0] => DomText Object
                                                (
                                                    [type] => 3
                                                    [content] => JoeCool
                                                    [0] => 4
                                                    [1] => 136076632
                                                )

                                        )

                                )

                            [1] => DomElement Object
                                (
                                    [type] => 1
                                    [tagname] => age
                                    [0] => 5
                                    [1] => 136076704
                                    [children] => Array
                                        (
                                            [0] => DomText Object
                                                (
                                                    [type] => 3
                                                    [content] => 24
                                                    [0] => 6
                                                    [1] => 136076776
                                                )

                                        )

                                )

                            [2] => DomElement Object
                                (
                                    [type] => 1
                                    [tagname] => sex
                                    [0] => 7
                                    [1] => 136076848
                                    [children] => Array
                                        (
                                            [0] => DomText Object
                                                (
                                                    [type] => 3
                                                    [content] => male
                                                    [0] => 8
                                                    [1] => 136076920
                                                )

                                        )

                                )

                        )

                )

        )

)

You were obviously missing some important information.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Apr 19 17:01:30 2024 UTC