I have some xml data and I am trying to access some elements. The structure of data
is as below (using print_r($data)).
I can get $data->{\'parent\'}->title
Do not use print_r() to inspect a SimpleXMLElement. Instead, just look at the XML. Children are accessed using the object notation ->name
and attributes are accessed using the array notation ['name']
.
In your case, I guess the correct way to access this attribute would be
$data->parent->link[0]['href']
Check out Accessing @attribute from SimpleXML, especially the comment on the misleading var_dump
(print_r
) output of SimpleXML Objects.
That said, IIRC the following should work in your example:
$data->{'parent'}->link[0]['href']
(That is, the attributes can be accessed using standard array notation - this definitely works on single elements, not sure if it works with the additional index into the element collection.)