diff --git a/.gitignore b/.gitignore index 77d1e64a..482be5c7 100755 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,3 @@ build/dev docs/* !docs/*.conf.json !docs/*.ico -.idea/* \ No newline at end of file diff --git a/src/js/operations/Extract.js b/src/js/operations/Extract.js index 01ebfd3a..41644762 100755 --- a/src/js/operations/Extract.js +++ b/src/js/operations/Extract.js @@ -330,29 +330,18 @@ var Extract = { } var serializer = new XMLSerializer(); - var output = ""; - for (var i = 0; i < result.length; i++) { - if (i > 0) output += delimiter; - - switch (result[i].nodeType) { - case Node.ELEMENT_NODE: - output += serializer.serializeToString(result[i]); - break; - case Node.ATTRIBUTE_NODE: - output += result[i].value; - break; - case Node.TEXT_NODE: - output += result[i].wholeText; - break; - case Node.COMMENT_NODE: - output += result[i].data; - break; - default: - throw new Error("Unknown Node Type: " + result[i].nodeType); + var nodeToString = function(node) { + const { nodeType, value, wholeText, data } = node; + switch (nodeType) { + case Node.ELEMENT_NODE: return serializer.serializeToString(node); + case Node.ATTRIBUTE_NODE: return value; + case Node.COMMENT_NODE: return data; + default: throw new Error(`Unknown Node Type: ${nodeType}`); } } - return output; + return Object.values(result).slice(0, -1) // all values except last (length) + .map(nodeToString) + .join(delimiter); } - };