aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-08-16 14:52:24 +0100
committerMichael Williamson <mike@zwobble.org>2015-08-16 14:54:50 +0100
commit93625f1557428915f7a68156e1edc95b9d849eae (patch)
treeb1851f8b49c0983c899b8ef33cbcb5ff8a3966d4
parent578ff57e4b86c4b31268e8b22a401c7bfaa9fe1a (diff)
Write element attributes
-rw-r--r--lib/xml/writer.js4
-rw-r--r--tests/xml/writer.tests.js8
2 files changed, 10 insertions, 2 deletions
diff --git a/lib/xml/writer.js b/lib/xml/writer.js
index 90746af..418a4b9 100644
--- a/lib/xml/writer.js
+++ b/lib/xml/writer.js
@@ -20,14 +20,14 @@ function writeString(root) {
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);
+ var elementBuilder = builder.element(element.name, element.attributes);
element.children.forEach(function(child) {
writeNode(elementBuilder, child);
});
diff --git a/tests/xml/writer.tests.js b/tests/xml/writer.tests.js
index a2f52ed..a542dc3 100644
--- a/tests/xml/writer.tests.js
+++ b/tests/xml/writer.tests.js
@@ -26,6 +26,14 @@ describe('xml.writer', function() {
'<root><album><year/><song/></album></root>');
});
+ test('can write element attributes', function() {
+ var element = xml.element("root", {}, [
+ xml.element("album", {"title": "Everything in Transit"})
+ ]);
+ assertXmlString(element,
+ '<root><album title="Everything in Transit"/></root>');
+ });
+
test('can write text nodes', function() {
var element = xml.element("root", {}, [
xml.element("album", {}, [