From bc1550787eec24964c506ebbddff9363d114b9e6 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 16 Aug 2015 14:46:33 +0100 Subject: Write descendant nodes --- lib/xml/writer.js | 10 +++++++++- tests/xml/writer.tests.js | 11 +++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/xml/writer.js b/lib/xml/writer.js index a97d17e..239dd04 100644 --- a/lib/xml/writer.js +++ b/lib/xml/writer.js @@ -12,7 +12,15 @@ function writeString(root) { standalone: true }); root.children.forEach(function(child) { - builder.element(child.name); + writeElement(builder, child); }); return builder.end(); } + + +function writeElement(builder, element) { + var elementBuilder = builder.element(element.name); + element.children.forEach(function(child) { + writeElement(elementBuilder, child); + }); +} diff --git a/tests/xml/writer.tests.js b/tests/xml/writer.tests.js index 5ffecc2..ed7039c 100644 --- a/tests/xml/writer.tests.js +++ b/tests/xml/writer.tests.js @@ -14,6 +14,17 @@ describe('xml.writer', function() { assertXmlString(new Element("root", {}, [new Element("album"), new Element("single")]), ''); }); + + test('can write empty descendant elements', function() { + var element = new Element("root", {}, [ + new Element("album", {}, [ + new Element("year"), + new Element("song") + ]) + ]); + assertXmlString(element, + ''); + }); }); -- cgit v1.2.3