XML/DOM serialization: Difference between revisions
Content deleted Content added
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}}== |