Fix for parsing pretty printed Webdav responses
Update davclient.js + adjust IE workaround for this
This commit is contained in:
parent
ae36c01b95
commit
b1ca431852
|
@ -145,10 +145,7 @@
|
||||||
var k = 0;
|
var k = 0;
|
||||||
for (k = 0; k < propNode.childNodes.length; k++) {
|
for (k = 0; k < propNode.childNodes.length; k++) {
|
||||||
var prop = propNode.childNodes[k];
|
var prop = propNode.childNodes[k];
|
||||||
var value = prop.textContent || prop.text;
|
var value = this._parsePropNode(prop);
|
||||||
if (prop.childNodes && prop.childNodes.length > 0 && prop.childNodes[0].nodeType === 1) {
|
|
||||||
value = prop.childNodes;
|
|
||||||
}
|
|
||||||
propStat.properties['{' + prop.namespaceURI + '}' + (prop.localName || prop.baseName)] = value;
|
propStat.properties['{' + prop.namespaceURI + '}' + (prop.localName || prop.baseName)] = value;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -148,6 +148,33 @@ dav.Client.prototype = {
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parses a property node.
|
||||||
|
*
|
||||||
|
* Either returns a string if the node only contains text, or returns an
|
||||||
|
* array of non-text subnodes.
|
||||||
|
*
|
||||||
|
* @param {Object} propNode node to parse
|
||||||
|
* @return {string|Array} text content as string or array of subnodes, excluding text nodes
|
||||||
|
*/
|
||||||
|
_parsePropNode: function(propNode) {
|
||||||
|
var content = null;
|
||||||
|
if (propNode.childNodes && propNode.childNodes.length > 0) {
|
||||||
|
var subNodes = [];
|
||||||
|
// filter out text nodes
|
||||||
|
for (var j = 0; j < propNode.childNodes.length; j++) {
|
||||||
|
var node = propNode.childNodes[j];
|
||||||
|
if (node.nodeType === 1) {
|
||||||
|
subNodes.push(node);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (subNodes.length) {
|
||||||
|
content = subNodes;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return content || propNode.textContent || propNode.text;
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parses a multi-status response body.
|
* Parses a multi-status response body.
|
||||||
|
@ -197,11 +224,7 @@ dav.Client.prototype = {
|
||||||
|
|
||||||
var propNode = propIterator.iterateNext();
|
var propNode = propIterator.iterateNext();
|
||||||
while(propNode) {
|
while(propNode) {
|
||||||
var content = propNode.textContent;
|
var content = this._parsePropNode(propNode);
|
||||||
if (propNode.childNodes && propNode.childNodes.length > 0 && propNode.childNodes[0].nodeType === 1) {
|
|
||||||
content = propNode.childNodes;
|
|
||||||
}
|
|
||||||
|
|
||||||
propStat.properties['{' + propNode.namespaceURI + '}' + propNode.localName] = content;
|
propStat.properties['{' + propNode.namespaceURI + '}' + propNode.localName] = content;
|
||||||
propNode = propIterator.iterateNext();
|
propNode = propIterator.iterateNext();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue