/**
  * Handles end element events
  * @param object A reference to the SAX parser
  * @param string The name of the end element tag
  */
 function endElement($parser, $name)
 {
     switch ($name) {
         case DOM_XMLRPC_TYPE_STRING:
             //$this->addValue(html_entity_decode($this->charContainer, ENT_QUOTES));
             $this->addValue($this->charContainer);
             break;
         case DOM_XMLRPC_TYPE_I4:
         case DOM_XMLRPC_TYPE_INT:
             $this->addValue((int) $this->charContainer);
             break;
         case DOM_XMLRPC_TYPE_DOUBLE:
             $this->addValue(floatval($this->charContainer));
             break;
         case DOM_XMLRPC_TYPE_BOOLEAN:
             $this->addValue((bool) trim($this->charContainer));
             break;
         case DOM_XMLRPC_TYPE_BASE64:
             require_once DOM_XMLRPC_INCLUDE_PATH . 'dom_xmlrpc_base64.php';
             $base64 = new dom_xmlrpc_base64();
             $base64->fromString($this->charContainer);
             $this->addValue($base64);
             //should I add object or string?
             break;
         case DOM_XMLRPC_TYPE_DATETIME:
             require_once DOM_XMLRPC_INCLUDE_PATH . 'dom_xmlrpc_datetime_iso8601.php';
             $dateTime = new dom_xmlrpc_datetime_iso8601($this->charContainer);
             $this->addValue($dateTime);
             //should I add object or string?
             break;
         case DOM_XMLRPC_TYPE_VALUE:
             //if charContainer has anything in it,
             //then there mustn't be a subnode, therefore a <string>
             $myValue = trim($this->charContainer);
             //if ($myValue != '') $this->addValue(html_entity_decode($myValue, ENT_QUOTES));
             if ($myValue != '') {
                 $this->addValue($myValue);
             }
             break;
         case DOM_XMLRPC_TYPE_ARRAY:
         case DOM_XMLRPC_TYPE_STRUCT:
             $value =& array_pop($this->lastArray);
             $this->addValue($value);
             array_pop($this->lastArrayType);
             break;
         case DOM_XMLRPC_TYPE_MEMBER:
             array_pop($this->lastStructName);
             break;
         case DOM_XMLRPC_TYPE_NAME:
             $this->lastStructName[] = trim($this->charContainer);
             $this->charContainer = '';
             break;
         case DOM_XMLRPC_TYPE_METHODNAME:
             $this->arrayDocument->methodName = trim($this->charContainer);
             $this->charContainer = '';
             break;
     }
 }
 /**
  * Creates a dom_xmlrpc_base64 object from the file
  * @param string The file path
  * @return object The base64 encoded data
  */
 function &createBase64FromFile($fileName)
 {
     require_once DOM_XMLRPC_INCLUDE_PATH . 'dom_xmlrpc_base64.php';
     $base64 = new dom_xmlrpc_base64();
     $base64->fromFile($fileName);
     return $base64;
 }