The range with its front now at the end tag corresponding to the start tag that was front when the function was called.
XMLParsingException on invalid XML.
auto xml = "<root>\n" ~ " <foo>\n" ~ " <bar>\n" ~ " Some text\n" ~ " </bar>\n" ~ " </foo>\n" ~ " <!-- no comment -->\n" ~ "</root>"; auto range = parseXML(xml); assert(range.front.type == EntityType.elementStart); assert(range.front.name == "root"); range.popFront(); assert(range.front.type == EntityType.elementStart); assert(range.front.name == "foo"); range = range.skipContents(); assert(range.front.type == EntityType.elementEnd); assert(range.front.name == "foo"); range.popFront(); assert(range.front.type == EntityType.comment); assert(range.front.text == " no comment "); range.popFront(); assert(range.front.type == EntityType.elementEnd); assert(range.front.name == "root"); range.popFront(); assert(range.empty);
Takes an EntityRange which is at a start tag and iterates it until it is at its corresponding end tag. It is an error to call skipContents when the current entity is not EntityType.elementStart.