Using the xmldom and domnode classes
The xmldom and domnode classes provide a framework for DOM parsing of XML documents. The xmldom class provides methods for parsing the document and accessing it's root node. Each node of the document is represented by an instance of the domnode class. The domnode class provides methods for accessing a node's data, attributes, child nodes, parent nodes and sibling nodes. Since the xmldom class creates a representation of the XML document in memory, it should not be used to process arbitrarily large documents which could exhaust system memory.
The following XML file contains an address book.
<?xml version="1.0"?> <!DOCTYPE instances SYSTEM "adbook.dtd <addressbook> <person firstname="David" middlename="Lee" lastname="Muse <phones> <phone location="home" number="1-222-333-4444"/> <phone location="work" number="1-333-444-5555"/> <phone location="mobile" number="1-444-555-6666"/> </phones> <addresses> <address location="home" address="1234 homestreet dr." city="mycity" state="GA" zip="12345"/> <address location="work" address="2345 workstreet dr." city="mycity" state="GA" zip="23456"/> </addresses> <emails> <email location="home" address="dmuse@firstworks.com"/> <email location="work" address="dmuse@workemail.com"/> </emails> </person> </addressbook>
The following program parses the addressbook and prints it to the screen.
Coming soon...
int main(int argc, const char **argv) { // FIXME: example... }
Here is the output of the program above.
David Lee Muse Phones: home: 1-222-333-4444 work: 1-333-444-5555 mobile: 1-444-555-6666 Addresses: home: 1234 homestreet dr. mycity, GA 12345 work: 2345 workstreet dr. mycity, GA 23456 Emails: home: dmuse@firstworks.com work: dmuse@workemail.com