コード例 #1
0
 public function renderXml()
 {
     $document = new DOMDocument('1.0', 'utf-8');
     $document->formatOutput = true;
     $rootNode = $document->createElement('errors');
     $document->appendChild($rootNode);
     if (isset($this->_params['exception']) && $this->_params['exception'] instanceof Exception) {
         $e = $this->_params['exception'];
         $exceptionMessage = $e->getMessage();
         $rootNode->appendChild(XenForo_Helper_DevelopmentXml::createDomElement($document, 'error', $exceptionMessage));
         $traceNode = $document->createElement('trace');
         foreach ($e->getTrace() as $trace) {
             $function = (isset($trace['class']) ? $trace['class'] . $trace['type'] : '') . $trace['function'];
             if (!isset($trace['file'])) {
                 $trace['file'] = '';
             }
             if (!isset($trace['line'])) {
                 $trace['line'] = '';
             }
             $entryNode = $document->createElement('entry');
             $entryNode->setAttribute('function', $function);
             $entryNode->setAttribute('file', $trace['file']);
             $entryNode->setAttribute('line', $trace['line']);
             $traceNode->appendChild($entryNode);
         }
         $rootNode->appendChild($traceNode);
     } else {
         $rootNode->appendChild($document->createElement('error', 'Unknown error, trace unavailable'));
     }
     return $document->saveXML();
 }