Module dlib.serialization.xml
GC-free parser for a subset of XML.
Description
Has the following limitations:
- supports only ASCII and UTF-8 encodings
- doesn't support DOCTYPE and some other special tags
Example
string xml = "
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<object>
<property name=\"position\" value=\"0 10 5\"/>
<!-- comment -->
<![CDATA[ some data ]]>
<foo>é</foo>
</object>
";
XmlDocument doc = parseXMLUnmanaged(xml);
assert(doc .prolog .properties["version"] == "1.0");
assert(doc .prolog .properties["encoding"] == "UTF-8");
auto obj = doc .root .children[0];
assert(obj .name == "object");
auto p = obj .children[0];
assert(p .name == "property");
assert(p .properties["name"] == "position");
assert(p .properties["value"] == "0 10 5");
assert(prop(p, "name") == "position");
assert(prop(p, "something") == "");
auto foo = obj .firstChildByTag("foo");
assert(foo .name == "foo");
string fooText = foo .getTextUnmanaged();
assert(fooText == "é");
Delete(fooText);
Delete(doc);
Example
assert(hexCharacterCode("ff00ff") == 16711935);
assert(hexCharacterCode("ABABAB;") == 11250603);