createFromGeoJson($geoJson); return parent::transaction ($method, $wfsConf, $gmlObj); } public function parseTransactionResponse ($xml) { $result = new stdClass(); $result->success = false; $result->message = ""; $result->xml = $xml; $simpleXml = simplexml_load_string($xml); $simpleXml->registerXPathNamespace('wfs', 'http://www.opengis.net/wfs'); $simpleXml->registerXPathNamespace('ogc', 'http://www.opengis.net/ogc'); // // get error messages // $nodeArray = $simpleXml->xpath("//wfs:TransactionResults/wfs:Action/wfs:Message"); $messageArray = array(); if ($nodeArray !== false) { foreach ($nodeArray as $node) { $domNode = dom_import_simplexml($node); $result->success = false; $messageArray[] = $domNode->nodeValue; } } if (count($messageArray) > 0) { $result->message = implode(". ", $messageArray); return $result; } // // Get transaction results // $nodeArray = $simpleXml->xpath("//wfs:TransactionSummary/*"); $messageArray = array(); if ($nodeArray !== false) { foreach ($nodeArray as $node) { $domNode = dom_import_simplexml($node); $tagName = $this->sepNameSpace($domNode->nodeName); $result->success = true; $messageArray[] = $tagName . ": " . $domNode->nodeValue; } } if (count($messageArray) > 0) { $result->message = implode(". ", $messageArray); // get fid $nodeArray = $simpleXml->xpath("//wfs:InsertResults/wfs:Feature/ogc:FeatureId"); $e = new mb_exception(print_r($nodeArray, true)); if ($nodeArray !== false) { foreach ($nodeArray as $node) { $domNode = dom_import_simplexml($node); if ($domNode->hasAttribute("fid")) { $result->fid = $domNode->getAttribute("fid"); } } } return $result; } // // Unknown error // $result->message = "An unknown error has occured."; return $result; } protected function getFeatureIdFilter ($fid) { return ""; } } ?>