Source for file XMLWriter.php
Documentation is available at XMLWriter.php
* Copyright (c) 2006 - 2010 PHPExcel
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* @package PHPExcel_Shared
* @copyright Copyright (c) 2006 - 2010 PHPExcel (http://www.codeplex.com/PHPExcel)
* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
* @version 1.7.3c, 2010-06-01
define('DATE_W3C', 'Y-m-d\TH:i:sP');
* PHPExcel_Shared_XMLWriter
* @package PHPExcel_Shared
* @copyright Copyright (c) 2006 - 2010 PHPExcel (http://www.codeplex.com/PHPExcel)
/** Temporary storage method */
const STORAGE_MEMORY = 1;
private $_tempFileName = '';
* Create a new PHPExcel_Shared_XMLWriter instance
* @param int $pTemporaryStorage Temporary storage location
* @param string $pTemporaryStorageFolder Temporary storage folder
public function __construct($pTemporaryStorage = self::STORAGE_MEMORY, $pTemporaryStorageFolder = './') {
// Create internal XMLWriter
$this->_xmlWriter = new XMLWriter();
// Open temporary storage
if ($pTemporaryStorage == self::STORAGE_MEMORY) {
$this->_xmlWriter->openMemory();
// Create temporary filename
$this->_tempFileName = @tempnam($pTemporaryStorageFolder, 'xml');
if ($this->_xmlWriter->openUri($this->_tempFileName) === false) {
$this->_xmlWriter->openMemory();
$this->_xmlWriter->setIndent(true);
unset ($this->_xmlWriter);
// Unlink temporary files
if ($this->_tempFileName != '') {
@unlink($this->_tempFileName);
if ($this->_tempFileName == '') {
return $this->_xmlWriter->outputMemory(true);
$this->_xmlWriter->flush();
* Catch function calls (and pass them to internal XMLWriter)
* @param unknown_type $function
* @param unknown_type $args
public function __call($function, $args) {
} catch (Exception $ex) {
* Fallback method for writeRaw, introduced in PHP 5.2
if (isset ($this->_xmlWriter) && is_object($this->_xmlWriter) && (method_exists($this->_xmlWriter, 'writeRaw'))) {
return $this->text($text);
|