load(orbitsXml); $xpath = new DOMXpath($orbitsXml); $targets = $targetXml->Target; foreach ($targets as $target) { if (file_exists(RemoteData."$target.json")) unlink(RemoteData."$target.json"); $targetMain = $target['TargetMain']; $coordImpex = $target['CoordName']; // Mecrury double definition if ($coordImpex == "HSM") $coordImpex == "MSM"; // general case $params = $xpath->query('//orbites[@target="'.$target.'" and @coordinate_system="'.$coordImpex.'"]'); // case of targetImpex = Jupiter.Magnetosphere; targetAmda = Jupiter if ($params->length == 0) $params = $xpath->query('//orbites[@target="'.$targetMain.'" and @coordinate_system="'.$coordImpex.'"]'); // case of targetImpex = Ganymede; targetAmda = Jupiter.Ganymede if ($params->length == 0) // $params = $xpath->query('//orbites[contains(@target,"'.$target.')" and @coordinate_system="'.$coordImpex.'"]'); $params = $xpath->query('//orbites[contains(@target,"'.$target.'")]'); if ($params->length > 0) { $dsArr = array(); $misArr = array(); $misGrpArr = array(); foreach ($params as $param) { $dsId = $param->getAttribute('dataset'); if (!is_array($dsArr[$dsId])) $dsArr[$dsId] = array(); $dsArr[$dsId][] = $param->getAttribute('xml:id'); $misId = $param->getAttribute('mission'); if (!is_array($misArr[$misId])) $misArr[$misId] = array(); $misArr[$misId][$dsId] = $dsArr[$dsId]; // Mission Group if ($param->hasAttribute('missionGroup')) $misGrpId = $param->getAttribute('missionGroup'); else $misGrpId = 'None'; if (!is_array($misGrpArr[$misGrpId])) $misGrpArr[$misGrpId] = array(); $misGrpArr[$misGrpId][$misId] = $misArr[$misId]; } file_put_contents(RemoteData.$target.'.json', json_encode($misGrpArr)); } } ?>