xml.php

来自「Cake Framwork , Excellent」· PHP 代码 · 共 153 行

PHP
153
字号
<?php/* SVN FILE: $Id: xml.php 7118 2008-06-04 20:49:29Z gwoo $ *//** * XML Helper class file. * * Simplifies the output of XML documents. * * CakePHP(tm) :  Rapid Development Framework <http://www.cakephp.org/> * Copyright 2005-2008, Cake Software Foundation, Inc. *								1785 E. Sahara Avenue, Suite 490-204 *								Las Vegas, Nevada 89104 * * Licensed under The MIT License * Redistributions of files must retain the above copyright notice. * * @filesource * @copyright		Copyright 2005-2008, Cake Software Foundation, Inc. * @link				http://www.cakefoundation.org/projects/info/cakephp CakePHP(tm) Project * @package			cake * @subpackage		cake.cake.libs.view.helpers * @since			CakePHP(tm) v 1.2 * @version			$Revision: 7118 $ * @modifiedby		$LastChangedBy: gwoo $ * @lastmodified	$Date: 2008-06-04 13:49:29 -0700 (Wed, 04 Jun 2008) $ * @license			http://www.opensource.org/licenses/mit-license.php The MIT License */App::import('Core', array('Xml', 'Set'));/** * XML Helper class for easy output of XML structures. * * XmlHelper encloses all methods needed while working with XML documents. * * @package		cake * @subpackage	cake.cake.libs.view.helpers */class XmlHelper extends AppHelper {/** * Default document encoding * * @access public * @var string */	var $encoding = 'UTF-8';/** * Returns an XML document header * * @param  array $attrib Header tag attributes * @return string XML header */	function header($attrib = array()) {		if (Configure::read('App.encoding') !== null) {			$this->encoding = Configure::read('App.encoding');		}		if (is_array($attrib)) {			$attrib = array_merge(array('encoding' => $this->encoding), $attrib);		}		if (is_string($attrib) && strpos($attrib, 'xml') !== 0) {			$attrib = 'xml ' . $attrib;		}		return $this->output($this->Xml->header($attrib));	}/** * Adds a namespace to any documents generated * * @param  string  $name The namespace name * @param  string  $url  The namespace URI; can be empty if in the default namespace map * @return boolean False if no URL is specified, and the namespace does not exist *                 default namespace map, otherwise true * @deprecated * @see Xml::addNs() */	function addNs($name, $url = null) {		return $this->Xml->addNamespace($name, $url);	}/** * Removes a namespace added in addNs() * * @param  string  $name The namespace name or URI * @deprecated * @see Xml::removeNs() */	function removeNs($name) {		return $this->Xml->removeGlobalNamespace($name);	}/** * Generates an XML element * * @param  string   $name The name of the XML element * @param  array    $attrib The attributes of the XML element * @param  mixed    $content XML element content * @param  boolean  $endTag Whether the end tag of the element should be printed * @return string XML */	function elem($name, $attrib = array(), $content = null, $endTag = true) {		$namespace = null;		if (isset($attrib['namespace'])) {			$namespace = $attrib['namespace'];			unset($attrib['namespace']);		}		$cdata = false;		if (is_array($content) && isset($content['cdata'])) {			$cdata = true;			unset($content['cdata']);		}		if (is_array($content) && isset($content['value'])) {			$content = $content['value'];		}		$children = array();		if (is_array($content)) {			$children = $content;			$content = null;		}		$elem =& $this->Xml->createElement($name, $content, $attrib, $namespace);		foreach ($children as $child) {			$elem->createElement($child);		}		$out = $elem->toString(array('cdata' => $cdata, 'leaveOpen' => !$endTag));		if (!$endTag) {			$this->Xml =& $elem;		}		return $this->output($out);	}	function closeElem() {		$name = $this->Xml->name();		if ($parent =& $this->Xml->parent()) {			$this->Xml =& $parent;		}		return $this->output('</' . $name . '>');	}/** * Serializes a model resultset into XML * * @param  mixed  $data The content to be converted to XML * @param  array  $options The data formatting options * @return string A copy of $data in XML format */	function serialize($data, $options = array()) {		$data = new Xml($data, array_merge(array('attributes' => false, 'format' => 'attributes'), $options));		return $data->toString(array_merge(array('header' => false), $options));	}		function beforeRender() {		$this->Xml =& new Xml();		$this->Xml->options(array('verifyNs' => false));	}}?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?