public function pack(AlmEntity $entity, array $editableParameters = array()) { $xml = new \SimpleXMLElement('<Entity></Entity>'); $xml->addAttribute('Type', $entity->getType()); $xmlFields = $xml->addChild('Fields'); $parameters = $entity->getParameters(); foreach ($parameters as $field => $value) { $isParameterPackable = true; if (count($editableParameters) > 0 && !in_array($field, $editableParameters)) { $isParameterPackable = false; } if ($isParameterPackable) { $xmlField = $xmlFields->addChild('Field'); $xmlField->addAttribute('Name', $field); $xmlField->addChild('Value', $value); } } return $xml; }