aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-08-16 14:51:06 +0100
committerMichael Williamson <mike@zwobble.org>2015-08-16 14:51:06 +0100
commit578ff57e4b86c4b31268e8b22a401c7bfaa9fe1a (patch)
treedaa87dd08fd71df9539832627cef0b2516e815f6 /lib
parentbc1550787eec24964c506ebbddff9363d114b9e6 (diff)
Write text nodes
Diffstat (limited to 'lib')
-rw-r--r--lib/xml/index.js6
-rw-r--r--lib/xml/nodes.js2
-rw-r--r--lib/xml/writer.js16
3 files changed, 20 insertions, 4 deletions
diff --git a/lib/xml/index.js b/lib/xml/index.js
index 6c35998..0320bc2 100644
--- a/lib/xml/index.js
+++ b/lib/xml/index.js
@@ -1,2 +1,6 @@
-exports.Element = require("./nodes").Element;
+var nodes = require("./nodes");
+
+exports.Element = nodes.Element;
+exports.element = nodes.element;
+exports.text = nodes.text;
exports.readString = require("./reader").readString;
diff --git a/lib/xml/nodes.js b/lib/xml/nodes.js
index 8232684..9305918 100644
--- a/lib/xml/nodes.js
+++ b/lib/xml/nodes.js
@@ -3,7 +3,7 @@ var _ = require("underscore");
exports.Element = Element;
exports.element = function(name, attributes, children) {
- return new Element();
+ return new Element(name, attributes, children);
};
exports.text = function(value) {
return {
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);
+}