XML/DOM serialization: Difference between revisions

Content added Content deleted
(Added a note regarding the availability of "xmldom" via "nimble".)
(Added Wren)
Line 1,735: Line 1,735:
</element>
</element>
</root></pre>
</root></pre>

=={{header|Wren}}==
Wren has no built-in or (AFAIK) third party support for XML so we code a minimal DOM sufficient for completing this task.
<lang ecmascript>class XmlDocument {
construct new(root) {
_root = root
}

toString { "<?xml version=\"1.0\" ?>\n%(_root.toString(0))" }
}

class XmlElement {
construct new(name, text) {
_name = name
_text = text
_children = []
}

name { _name }
text { _text }
children { _children }

addChild(child) { _children.add(child) }

toString(level) {
var indent = " "
var s = indent * level + "<%(name)>\n"
if (_text != "") s = s + indent * (level + 1) + _text + "\n"
for (c in _children) {
s = s + c.toString(level+1) + "\n"
}
return s + indent * level + "</%(name)>"
}
}

var root = XmlElement.new("root", "")
var child = XmlElement.new("element", "Some text here")
root.addChild(child)
var doc = XmlDocument.new(root)
System.print(doc)</lang>

{{out}}
<pre>
<?xml version="1.0" ?>
<root>
<element>
Some text here
</element>
</root>
</pre>


=={{header|XProc}}==
=={{header|XProc}}==