CLICK HERE TO BUY IT TODAY! OR GET IT FREE VIA TRIALPAY  

PHP Demo Application - Source Code

/Framework/Model/Vendor/CkEditor/_source/core/xml.js



/*
Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
/**
 * @fileOverview Defines the {@link CKEDITOR.xml} class, which represents a
 *        loaded XML document.
 */
/**
 * Represents a loaded XML document.
 * @constructor
 * @param {object|string} xmlObjectOrData A native XML (DOM document) object or
 *        a string containing the XML definition to be loaded.
 * @example
 * var xml = <b>new CKEDITOR.xml( '<books><book title="My Book" /></books>' )</b>;
 */
CKEDITOR.xml = function( xmlObjectOrData )
{
	    var baseXml null;
	    if ( typeof xmlObjectOrData == 'object' )
	        baseXml xmlObjectOrData;
	    else
	    {
		        var data = ( xmlObjectOrData || '' ).replace( /&nbsp;
		/g'\xA0' );
		        if ( window.DOMParser )
		            baseXml = (new DOMParser()).parseFromStringdata'text/xml' );
		        else if ( window.ActiveXObject )
		        {
			            try { baseXml = new ActiveXObject'MSXML2.DOMDocument' );
				}
			            catch(e)
			            {
				                try { baseXml = new ActiveXObject'Microsoft.XmlDom' );
					} catch(e{}
				            }
			            if ( baseXml )
			            {
				                baseXml.async false;
				                baseXml.resolveExternals false;
				                baseXml.validateOnParse false;
				                baseXml.loadXMLdata );
				            }
			        }
		    }
	    /**
	     * The native XML (DOM document) used by the class instance.
	     * @type object
	     * @example
	     */
	    this.baseXml baseXml;
	};
CKEDITOR.xml.prototype =
{
	    /**
	     * Get a single node from the XML document, based on a XPath query.
	     * @param {String} xpath The XPath query to execute.
	     * @param {Object} [contextNode] The XML DOM node to be used as the context
	     *        for the XPath query. The document root is used by default.
	     * @returns {Object} A XML node element or null if the query has no results.
	     * @example
	     * // Create the XML instance.
	     * var xml = new CKEDITOR.xml( '<list><item id="test1" /><item id="test2" /></list>' );
	     * // Get the first <item> node.
	     * var itemNode = <b>xml.selectSingleNode( 'list/item' )</b>;
	     * // Alert "item".
	     * alert( itemNode.nodeName );
	     */
	    selectSingleNode : function( xpathcontextNode )
	    {
		        var baseXml this.baseXml;
		        if ( contextNode || ( contextNode baseXml ) )
		        {
			            if ( CKEDITOR.env.ie || contextNode.selectSingleNode )    // IE
			                return contextNode.selectSingleNodexpath );
			            else if ( baseXml.evaluate )                            // Others
			            {
				                var result baseXml.evaluatexpathcontextNodenull9null);
				                return ( result && result.singleNodeValue ) || null;
				            }
			        }
		        return null;
		    },
	    /**
	     * Gets a list node from the XML document, based on a XPath query.
	     * @param {String} xpath The XPath query to execute.
	     * @param {Object} [contextNode] The XML DOM node to be used as the context
	     *        for the XPath query. The document root is used by default.
	     * @returns {ArrayLike} An array containing all matched nodes. The array will
	     *        be empty if the query has no results.
	     * @example
	     * // Create the XML instance.
	     * var xml = new CKEDITOR.xml( '<list><item id="test1" /><item id="test2" /></list>' );
	     * // Get the first <item> node.
	     * var itemNodes = xml.selectSingleNode( 'list/item' );
	     * // Alert "item" twice, one for each <item>.
	     * for ( var i = 0 ;
	 i < itemNodes.length ;
	 i++ )
	     *     alert( itemNodes[i].nodeName );
	     */
	    selectNodes : function( xpathcontextNode )
	    {
		        var baseXml this.baseXml,
		            nodes [];
		        if ( contextNode || ( contextNode baseXml ) )
		        {
			            if ( CKEDITOR.env.ie || contextNode.selectNodes )        // IE
			                return contextNode.selectNodesxpath );
			            else if ( baseXml.evaluate )                            // Others
			            {
				                var result baseXml.evaluatexpathcontextNodenull5null);
				                if ( result )
				                {
					                    var node;
					                    while ( ( node result.iterateNext() ) )
					                        nodes.pushnode );
					                }
				            }
			        }
		        return nodes;
		    },
	    /**
	     * Gets the string representation of hte inner contents of a XML node,
	     * based on a XPath query.
	     * @param {String} xpath The XPath query to execute.
	     * @param {Object} [contextNode] The XML DOM node to be used as the context
	     *        for the XPath query. The document root is used by default.
	     * @returns {String} The textual representation of the inner contents of
	     *        the node or null if the query has no results.
	     * @example
	     * // Create the XML instance.
	     * var xml = new CKEDITOR.xml( '<list><item id="test1" /><item id="test2" /></list>' );
	     * // Alert "<item id="test1" /><item id="test2" />".
	     * alert( xml.getInnerXml( 'list' ) );
	     */
	    getInnerXml : function( xpathcontextNode )
	    {
		        var node this.selectSingleNodexpathcontextNode ),
		            xml [];
		        if ( node )
		        {
			            node node.firstChild;
			            while ( node )
			            {
				                if ( node.xml )                // IE
				                    xml.pushnode.xml );
				                else if ( window.XMLSerializer )    // Others
				                    xml.push( ( new XMLSerializer() ).serializeToStringnode ) );
				                node node.nextSibling;
				            }
			        }
		        return xml.length xml.join'' ) : null;
		    }
	};





PHP Demo Source Code Index