+ if (!isset($element) && isset($xml)) {
+ $element = $xml;
+ }
+
+ if (is_integer($key)) {
+ if (isset($element)) {
+ if (is_scalar($value)) {
+ $element[0] = $value;
+ } else {
+ /// @todo: handle nested array values
+ }
+ }
+ continue;
+ }
+
+ $element_parts = explode(":", $key);
+ if ((count($element_parts) > 1) && isset($namespaces[$element_parts[0]])) {
+ $namespace = $namespaces[$element_parts[0]];
+ } elseif (isset($namespaces[""])) {
+ $namespace = $namespaces[""];
+ } else {
+ $namespace = NULL;
+ }
+
+ // Remove undefined namespaces from the key
+ if ((count($element_parts) > 1) && is_null($namespace)) {
+ $key = $element_parts[1];
+ }
+