Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>The code below will convert any XMLObject or string to a native JavaScript object. Then you can walk on the object to extract any value you want.</p> <pre class="lang-js prettyprint-override"><code>/** * Tries to convert a given XML data to a native JavaScript object by traversing the DOM tree. * If a string is given, it first tries to create an XMLDomElement from the given string. * * @param {XMLDomElement|String} source The XML string or the XMLDomElement prefreably which containts the necessary data for the object. * @param {Boolean} [includeRoot] Whether the "required" main container node should be a part of the resultant object or not. * @return {Object} The native JavaScript object which is contructed from the given XML data or false if any error occured. */ Object.fromXML = function( source, includeRoot ) { if( typeof source == 'string' ) { try { if ( window.DOMParser ) source = ( new DOMParser() ).parseFromString( source, "application/xml" ); else if( window.ActiveXObject ) { var xmlObject = new ActiveXObject( "Microsoft.XMLDOM" ); xmlObject.async = false; xmlObject.loadXML( source ); source = xmlObject; xmlObject = undefined; } else throw new Error( "Cannot find an XML parser!" ); } catch( error ) { return false; } } var result = {}; if( source.nodeType == 9 ) source = source.firstChild; if( !includeRoot ) source = source.firstChild; while( source ) { if( source.childNodes.length ) { if( source.tagName in result ) { if( result[source.tagName].constructor != Array ) result[source.tagName] = [result[source.tagName]]; result[source.tagName].push( Object.fromXML( source ) ); } else result[source.tagName] = Object.fromXML( source ); } else if( source.tagName ) result[source.tagName] = source.nodeValue; else if( !source.nextSibling ) { if( source.nodeValue.clean() != "" ) { result = source.nodeValue.clean(); } } source = source.nextSibling; } return result; }; String.prototype.clean = function() { var self = this; return this.replace(/(\r\n|\n|\r)/gm, "").replace(/^\s+|\s+$/g, ""); } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload