Hi, Im quite experienced with php, but my working knowledge of xml and how to process it is absolute twoddle! Here's the situation; Ive got a script which returns raw XML from a remote server, the information needs to be parsed using a PHP function to extract the data into variables/array. Here is my code; <?php function postXMLtoURL($server, $path, $xmlDocument) { $xmlSource = $xmlDocument; $contentLength = strlen($xmlSource); $fp = fsockopen($server); fputs($fp, "POST $path HTTP/1.0\r\n"); fputs($fp, "Host: $server\r\n"); fputs($fp, "Content-Type: text/xml\r\n"); fputs($fp, "Content-Length: $contentLength\r\n"); fputs($fp, "Connection: close\r\n"); fputs($fp, "\r\n"); // all headers sent fputs($fp, $xmlSource); $result = ''; while (!feof($fp)) { $result .= fgets($fp, 128); } return $result; } function getBody($httpResponse) { $lines = preg_split('/(\r\n|\r|\n)/', $httpResponse); $responseBody = ''; $lineCount = count($lines); for ($i = 0; $i < $lineCount; $i++) { if ($lines[$i] == '') { break; } } for ($j = $i + 1; $j < $lineCount; $j++) { $responseBody .= $lines[$j] . "\n"; } return $responseBody; } //$xmlDocument = simplexml_load_file('xml.xml'); $xmlDocument = '<?xml version="1.0" encoding="UTF-8"?> <OTA_VehAvailRateRQ xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_VehAvailRateRQ.xsd" Target="Test" Version="1.005"> <POS> <Source ISOCurrency="GBP"> <RequestorID Type="16" ID="999999" ID_Context="CARTRAWLER" /> </Source> </POS> <VehAvailRQCore Status="Available"> <VehRentalCore PickUpDateTime="2010-04-02T07:00:00" ReturnDateTime="2010-04-09T19:00:00"> <PickUpLocation CodeContext="CARTRAWLER" LocationCode="71" /> <ReturnLocation CodeContext="CARTRAWLER" LocationCode="71" /> </VehRentalCore> <DriverType Age=\'30\'/> </VehAvailRQCore> <VehAvailRQInfo PassengerQty=\'3\'> <Customer> <Primary> <CitizenCountryName Code=\'IE\' /> </Primary> </Customer> <TPA_Extensions> <ConsumerIP>255.255.255.255</ConsumerIP> </TPA_Extensions> </VehAvailRQInfo> </OTA_VehAvailRateRQ>'; $result = postXMLtoURL("otatest.cartrawler.com:20002", "/cartrawlerota", $xmlDocument); $responseBody = getBody($result); $resultDocument = new DOMDocument(); $resultDocument->loadXML($responseBody); header('Content-Type: text/xml'); print_r($responseBody); ?> PHP: And the response i get formatted in XML can be found at ; http://www.excessprotection.co.uk/sendxml.php Is there a nice PHP function which will parse this huge amount of data into a manageable array as such?