Merge branch 'MDL-32509' of git://github.com/danpoltawski/moodle
[moodle.git] / lib / yui / 3.5.0 / build / datatype-xml-parse / datatype-xml-parse-debug.js
blob08b653d00384c196832db50d2d22a73760cf277d
1 /*
2 YUI 3.5.0 (build 5089)
3 Copyright 2012 Yahoo! Inc. All rights reserved.
4 Licensed under the BSD License.
5 http://yuilibrary.com/license/
6 */
7 YUI.add('datatype-xml-parse', function(Y) {
9 /**
10  * Parse XML submodule.
11  *
12  * @module datatype
13  * @submodule datatype-xml-parse
14  * @for DataType.XML
15  */
17 var LANG = Y.Lang;
19 Y.mix(Y.namespace("DataType.XML"), {
20     /**
21      * Converts data to type XMLDocument.
22      *
23      * @method parse
24      * @param data {String} Data to convert.
25      * @return {XMLDoc} XML Document.
26      */
27     parse: function(data) {
28         var xmlDoc = null;
29         if(LANG.isString(data)) {
30             try {
31                 if(!LANG.isUndefined(ActiveXObject)) {
32                         xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
33                         xmlDoc.async = false;
34                         xmlDoc.loadXML(data);
35                 }
36             }
37             catch(ee) {
38                 try {
39                     if(!LANG.isUndefined(DOMParser)) {
40                         xmlDoc = new DOMParser().parseFromString(data, "text/xml");
41                     }
42                 }
43                 catch(e) {
44                 }
45                     Y.log(ee.message + " (Could not parse data to type XML Document)", "warn", "datatype-xml");
46             }
47         }
48         
49         if( (LANG.isNull(xmlDoc)) || (LANG.isNull(xmlDoc.documentElement)) || (xmlDoc.documentElement.nodeName === "parsererror") ) {
50             Y.log("Could not parse data to type XML Document", "warn", "datatype-xml");
51         }
52         
53         return xmlDoc;
54     }
55 });
57 // Add Parsers shortcut
58 Y.namespace("Parsers").xml = Y.DataType.XML.parse;
62 }, '3.5.0' );