Looping through a SimpleXML object, or turning the whole thing into an array.
- by Coffee Cup
I'm trying to work out how to iterate though a returned SimpleXML object.
I'm using a toolkit called Tarzan AWS, which connects to Amazon Web Services (SimpleDB, S3, EC2, etc). I'm specifically using SimpleDB.
I can put data into the Amazon SimpleDB service, and I can get it back. I just don't know how to handle the SimpleXML object that is returned.
The Tarzan AWS documentation says this:
Look at the response to navigate through the headers and body of the response. Note that this is an object, not an array, and that the body is a SimpleXML object.
Here's a sample of the returned SimpleXML object:
[body] = SimpleXMLElement Object
(
[QueryWithAttributesResult] = SimpleXMLElement Object
(
[Item] = Array
(
[0] = SimpleXMLElement Object
(
[Name] = message12413344443260
[Attribute] = Array
(
[0] = SimpleXMLElement Object
(
[Name] = active
[Value] = 1
)
[1] = SimpleXMLElement Object
(
[Name] = user
[Value] = john
)
[2] = SimpleXMLElement Object
(
[Name] = message
[Value] = This is a message.
)
[3] = SimpleXMLElement Object
(
[Name] = time
[Value] = 1241334444
)
[4] = SimpleXMLElement Object
(
[Name] = id
[Value] = 12413344443260
)
[5] = SimpleXMLElement Object
(
[Name] = ip
[Value] = 10.10.10.1
)
)
)
[1] = SimpleXMLElement Object
(
[Name] = message12413346907303
[Attribute] = Array
(
[0] = SimpleXMLElement Object
(
[Name] = active
[Value] = 1
)
[1] = SimpleXMLElement Object
(
[Name] = user
[Value] = fred
)
[2] = SimpleXMLElement Object
(
[Name] = message
[Value] = This is another message
)
[3] = SimpleXMLElement Object
(
[Name] = time
[Value] = 1241334690
)
[4] = SimpleXMLElement Object
(
[Name] = id
[Value] = 12413346907303
)
[5] = SimpleXMLElement Object
(
[Name] = ip
[Value] = 10.10.10.2
)
)
)
)
So what code do I need to get through each of the object items? I'd like to loop through each of them and handle it like a returned mySQL query. For example, I can query SimpleDB and then loop though the SimpleXML so I can display the results on the page.
Alternatively, how do you turn the whole shebang into an array?
I'm new to SimpleXML, so I apologise if my questions aren't specific enough.