module main import encoding.xml const sample_document = ' Text1 Text2 Text3 Text4 Text5 Text6 Text7 Text8 Text9 ' fn test_querying() ! { doc := xml.XMLDocument.from_string(sample_document)! assert doc.root.name == 'root' assert doc.root.children.len == 3 middle_tag := doc.get_element_by_id('middle-tag')? assert middle_tag.name == 'b' assert middle_tag.attributes['attr'] == 'value2' assert middle_tag.children.len == 4 innermost := middle_tag.get_element_by_id('innermost')? assert innermost.name == 'f' assert innermost.attributes['attr'] == 'value6' for count in 1 .. 13 { assert doc.get_elements_by_attribute('attr', 'value${count}').len == 1 } i_tags := doc.get_elements_by_tag('i') assert i_tags.len == 1 assert i_tags[0].name == 'i' assert i_tags[0].attributes['attr'] == 'value9' assert i_tags[0].children.len == 1 assert i_tags[0].children[0] as string == 'Text6' }