/**
* 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);