load xml var text = @[xml] chardata value @[xml] # Parse XML into a tree structure var doc = xml.parse(text) io.writeln('version =', doc.version, ' encoding =', doc.encoding) # Obtaining the root element var root = doc.root io.writeln('<', root.tag, root.empty? '/>' : '>') # processing instruction var pi = (xml::Instruction)root.child(0) io.writeln('' ) # character data var cd = (xml::CharData)root.child(1) io.writeln('chardata:', cd.kind, cd.data) # getting a sub-element var gr = root.elements[0] io.writeln('<', gr.tag, 'atr="', gr['atr'], '">') # finding a sub-element by path and/or attributes var inner = root.find('group/el', b = '2') io.writeln('inner text:', inner.text) # mapping of data # io.writeln('inner attribs:', inner.map($attribs, type(tuple, b: int>))) # TODO; # adding a sub-element str 1 gr.extend(el2 = (inner1 = 'str', inner2 = 1)) # serializing to XML io.writeln(doc.serialize())