diff --git a/src/Request/ProcessRequestImpl/Process/ProcessManagerClass.php b/src/Request/ProcessRequestImpl/Process/ProcessManagerClass.php index 6ad53ae..00e6b63 100644 --- a/src/Request/ProcessRequestImpl/Process/ProcessManagerClass.php +++ b/src/Request/ProcessRequestImpl/Process/ProcessManagerClass.php @@ -241,6 +241,17 @@ class ProcessManagerClass return $process; } + // Next element sibling for DOMElement + function fNextEltSibling($node) { + while ($node && ($node = $node->nextSibling)) { + if ($node instanceof DOMElement) { + break; + } + } + return $node; + } + + /* * @brief Get information about a process */ @@ -250,7 +261,8 @@ class ProcessManagerClass $update = $args['update']; $processNodes = $dom->documentElement->getElementsByTagName("process"); - foreach ($processNodes as $processNode) + $processNode = $processNodes->item(0); + while ($processNode) { if ($processNode->getAttribute('xml:id') == $id) { @@ -269,6 +281,7 @@ class ProcessManagerClass return array('success' => true, 'result' => $processInfo); } + $processNode = $this->fNextEltSibling($processNode); } return array('success' => false, 'message' => 'Cannot get process from id'); @@ -280,7 +293,8 @@ class ProcessManagerClass private function deleteProcessFromId($dom, $id) { $processNodes = $dom->documentElement->getElementsByTagName("process"); - foreach ($processNodes as $processNode) + $processNode = $processNodes->item(0); + while ($processNode) { if ($processNode->getAttribute('xml:id') == $id) { @@ -296,6 +310,7 @@ class ProcessManagerClass return array('success' => true); } + $processNode = $this->fNextEltSibling($processNode); } return array('success' => false, 'message' => 'Cannot get process from id'); @@ -307,7 +322,8 @@ class ProcessManagerClass private function killProcessFromId($dom, $id) { $processNodes = $dom->documentElement->getElementsByTagName("process"); - foreach ($processNodes as $processNode) + $processNode = $processNodes->item(0); + while ($processNode) { if ($processNode->getAttribute('xml:id') == $id) { @@ -326,10 +342,11 @@ class ProcessManagerClass } return array('success' => false, 'message' => 'Cannot process from id'); } + $processNode = $this->fNextEltSibling($processNode); } return array('success' => false, 'message' => 'Cannot kill process from id '.$id); } } -?> \ No newline at end of file +?> -- libgit2 0.21.2