Работа над XmlParser
This commit is contained in:
@@ -452,7 +452,7 @@ class XmlParser extends NodeBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
toString(options = {}) {
|
toString(options = {}) {
|
||||||
const {encoding = 'utf-8', format = false, noHeader = false} = options;
|
const {encoding = 'utf-8', format = false, noHeader = false, expandEmpty = false} = options;
|
||||||
|
|
||||||
let deepType = 0;
|
let deepType = 0;
|
||||||
let out = '';
|
let out = '';
|
||||||
@@ -489,15 +489,19 @@ class XmlParser extends NodeBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
open = (format && lastType !== TEXT ? indent : '');
|
|
||||||
open += `<${node.name}${attrs}>`;
|
|
||||||
|
|
||||||
if (node.value)
|
if (node.value)
|
||||||
body = nodesToString(node.value, depth + 2);
|
body = nodesToString(node.value, depth + 2);
|
||||||
|
|
||||||
close = (format && deepType && deepType !== TEXT ? indent : '');
|
if (!body && !expandEmpty) {
|
||||||
close += `</${node.name}>`;
|
open = (format && lastType !== TEXT ? indent : '');
|
||||||
|
open += `<${node.name}${attrs}/>`;
|
||||||
|
} else {
|
||||||
|
open = (format && lastType !== TEXT ? indent : '');
|
||||||
|
open += `<${node.name}${attrs}>`;
|
||||||
|
|
||||||
|
close = (format && deepType && deepType !== TEXT ? indent : '');
|
||||||
|
close += `</${node.name}>`;
|
||||||
|
}
|
||||||
} else if (node.type === TEXT) {
|
} else if (node.type === TEXT) {
|
||||||
body = node.value || '';
|
body = node.value || '';
|
||||||
} else if (node.type === CDATA) {
|
} else if (node.type === CDATA) {
|
||||||
@@ -516,7 +520,7 @@ class XmlParser extends NodeBase {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
out += nodesToString(this.rawNodes);
|
out += nodesToString(this.rawNodes) + (format ? '\n' : '');
|
||||||
|
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user