diff options
Diffstat (limited to 'lib/xml/writer.js')
| -rw-r--r-- | lib/xml/writer.js | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/lib/xml/writer.js b/lib/xml/writer.js index 239dd04..90746af 100644 --- a/lib/xml/writer.js +++ b/lib/xml/writer.js @@ -12,15 +12,27 @@ function writeString(root) { standalone: true }); root.children.forEach(function(child) { - writeElement(builder, child); + writeNode(builder, child); }); return builder.end(); } +var nodeWriters = { + element: writeElement, + text: writeTextNode +} + +function writeNode(builder, node) { + return nodeWriters[node.type](builder, node); +} function writeElement(builder, element) { var elementBuilder = builder.element(element.name); element.children.forEach(function(child) { - writeElement(elementBuilder, child); + writeNode(elementBuilder, child); }); } + +function writeTextNode(builder, node) { + builder.text(node.value); +} |
