I have some browse nodes returned form the Amazon API as XML which looks like the output below. How can I walk through this mess/flatten it and extract out the data I need. This is the input:
object(SimpleXMLElement)#72 (1) {
["BrowseNode"]=>
array(2) {
[0]=>
object(SimpleXMLElement)#73 (3) {
["BrowseNodeId"]=>
string(10) "1342630031"
["Name"]=>
string(8) "Chargers"
["Ancestors"]=>
object(SimpleXMLElement)#75 (1) {
["BrowseNode"]=>
object(SimpleXMLElement)#76 (3) {
["BrowseNodeId"]=>
string(9) "389516011"
["Name"]=>
string(11) "Accessories"
["Ancestors"]=>
object(SimpleXMLElement)#77 (1) {
["BrowseNode"]=>
object(SimpleXMLElement)#78 (3) {
["BrowseNodeId"]=>
string(9) "389514011"
["Name"]=>
string(38) "Sat Nav, GPS, Navigation & Accessories"
["Ancestors"]=>
object(SimpleXMLElement)#79 (1) {
["BrowseNode"]=>
object(SimpleXMLElement)#80 (4) {
["BrowseNodeId"]=>
string(6) "560800"
["Name"]=>
string(10) "Categories"
["IsCategoryRoot"]=>
string(1) "1"
["Ancestors"]=>
object(SimpleXMLElement)#81 (1) {
["BrowseNode"]=>
object(SimpleXMLElement)#82 (2) {
["BrowseNodeId"]=>
string(6) "560798"
["Name"]=>
string(19) "Electronics & Photo"
}
}
}
}
}
}
}
}
}
[1]=>
object(SimpleXMLElement)#74 (3) {
["BrowseNodeId"]=>
string(9) "340328031"
["Name"]=>
string(12) "Car Chargers"
["Ancestors"]=>
object(SimpleXMLElement)#75 (1) {
["BrowseNode"]=>
object(SimpleXMLElement)#76 (3) {
["BrowseNodeId"]=>
string(9) "340327031"
["Name"]=>
string(8) "Chargers"
["Ancestors"]=>
object(SimpleXMLElement)#77 (1) {
["BrowseNode"]=>
object(SimpleXMLElement)#78 (3) {
["BrowseNodeId"]=>
string(6) "560826"
["Name"]=>
string(11) "Accessories"
["Ancestors"]=>
object(SimpleXMLElement)#79 (1) {
["BrowseNode"]=>
object(SimpleXMLElement)#80 (3) {
["BrowseNodeId"]=>
string(10) "1340509031"
["Name"]=>
string(29) "Mobile Phones & Communication"
["Ancestors"]=>
object(SimpleXMLElement)#81 (1) {
["BrowseNode"]=>
object(SimpleXMLElement)#82 (4) {
["BrowseNodeId"]=>
string(6) "560800"
["Name"]=>
string(10) "Categories"
["IsCategoryRoot"]=>
string(1) "1"
["Ancestors"]=>
object(SimpleXMLElement)#83 (1) {
["BrowseNode"]=>
object(SimpleXMLElement)#84 (2) {
["BrowseNodeId"]=>
string(6) "560798"
["Name"]=>
string(19) "Electronics & Photo"
}
}
}
}
}
}
}
}
}
}
}
}
}
I want to walk through it and flatten it into a structure I can work with like the following:
array(
(1342630031,'Chargers'),
(389516011,'Accessories'),
(389514011,'Sat Nav, GPS, Navigation & Accessories'),
(560800,'Categories'),
(560798,'Electronics & Photo'),
(340328031,'Car Chargers'),
(340327031,'Chargers'),
(560826,'Accessories'),
(1340509031,'Mobile Phones & Communication'),
(560800,'Categories'),
(560798,'Electronics & Photo')
)
This would then allow me to:
echo $array[0][0];
echo $array[0][1];
echo $array[5][1];
Which would give:
1342630031
Chargers
Electronics & Photo
etc...
If it helps here is the original XML
<?xml version="1.0" encoding="UTF-8"?>
<BrowseNodes>
<BrowseNode>
<BrowseNodeId>1342630031</BrowseNodeId>
<Name>Chargers</Name>
<Ancestors>
<BrowseNode>
<BrowseNodeId>389516011</BrowseNodeId>
<Name>Accessories</Name>
<Ancestors>
<BrowseNode>
<BrowseNodeId>389514011</BrowseNodeId>
<Name>Sat Nav, GPS, Navigation & Accessories</Name>
<Ancestors>
<BrowseNode>
<BrowseNodeId>560800</BrowseNodeId>
<Name>Categories</Name>
<IsCategoryRoot>1</IsCategoryRoot>
<Ancestors>
<BrowseNode>
<BrowseNodeId>560798</BrowseNodeId>
<Name>Electronics & Photo</Name>
</BrowseNode>
</Ancestors>
</BrowseNode>
</Ancestors>
</BrowseNode>
</Ancestors>
</BrowseNode>
</Ancestors>
</BrowseNode>
<BrowseNode>
<BrowseNodeId>340328031</BrowseNodeId>
<Name>Car Chargers</Name>
<Ancestors>
<BrowseNode>
<BrowseNodeId>340327031</BrowseNodeId>
<Name>Chargers</Name>
<Ancestors>
<BrowseNode>
<BrowseNodeId>560826</BrowseNodeId>
<Name>Accessories</Name>
<Ancestors>
<BrowseNode>
<BrowseNodeId>1340509031</BrowseNodeId>
<Name>Mobile Phones & Communication</Name>
<Ancestors>
<BrowseNode>
<BrowseNodeId>560800</BrowseNodeId>
<Name>Categories</Name>
<IsCategoryRoot>1</IsCategoryRoot>
<Ancestors>
<BrowseNode>
<BrowseNodeId>560798</BrowseNodeId>
<Name>Electronics & Photo</Name>
</BrowseNode>
</Ancestors>
</BrowseNode>
</Ancestors>
</BrowseNode>
</Ancestors>
</BrowseNode>
</Ancestors>
</BrowseNode>
</Ancestors>
</BrowseNode>
</BrowseNodes>