/** * domparse.js - Dom parse static utils for xhrdavclient(Mix-in) * * @license Copyright 2011 The xhrdavclient library authors. * All rights reserved. */ goog.provide('xhrdav.utils.domparse'); goog.require('xhrdav.parser.DomHandler'); goog.require('xhrdav.parser.DomParser'); /** * Parse WebDAV Multi-Status to row structure by Dom parser * * @param {Object} xml WebDAV Multi-Status collections. * @return {Object} converted multistatus object(Associate array). * @this {Function} */ xhrdav.utils.domparse.parseXml = function(xml) { var handler = new xhrdav.parser.DomHandler(); var parser, obj, errorFlag = false; try { parser = new xhrdav.parser.DomParser().initialize(xml, handler); parser.parse(); } catch (e) { errorFlag = true; if (this.errorHandler && goog.isFunction(this.errorHandler)) { this.errorHandler(e); } } finally { obj = errorFlag ? {} : (handler.getObject() || {}); handler.dispose(); } return obj; }; /* Entry Point for closure compiler */ goog.exportSymbol('xhrdav.utils.domparse', xhrdav.utils.domparse); goog.exportSymbol('xhrdav.utils.domparse.parseXml', xhrdav.utils.domparse.parseXml);