Работа над XmlParser

This commit is contained in:
Book Pauk
2022-11-08 15:01:52 +07:00
parent 98fac2bf11
commit 9cf9530447

View File

@@ -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;
} }