protected function _push($Node, $Object) { $name = $Node->name(); $data = $Node->data(); if (substr($name, -2, 2) == 'Id' or $name == 'ExternalKey' or substr($name, -3, 3) == 'Ref') { $data = QuickBooks_IPP_IDS::buildIDType($Node->getAttribute('idDomain'), $data); } $adds = array(); if ($Node->hasChildren()) { $class = 'QuickBooks_IPP_Object_' . $name; $Subobject = new $class(); foreach ($Node->children() as $Subnode) { $this->_push($Subnode, $Subobject); } $Object->{'add' . $name}($Subobject); } else { if (true or isset($adds[$name])) { $Object->{'add' . $name}($data); } /*else { if ($data == 'false') { $Object->{'set' . $name}(false); } else if ($data == 'true') { $Object->{'set' . $name}(true); } else { $Object->{'set' . $name}($data); } }*/ } if ($Node->hasAttributes()) { //Don't make a new object, just put it as a property of the same one foreach ($Node->attributes() as $attr_name => $attr_value) { $Object->{'add' . $name . '_' . $attr_name}($attr_value); } } }