simple DOM-style XML parser, in C++?
Paul Miller
stele at fxtech.com
Fri Dec 3 20:50:07 GMT 1999
I just "discovered" this list, and I wanted to check into the existence
of a simple parser that provides DOM-like access, before I implemented
my own (on top of expat). I've heard of SAX, and wonder if the C++
interface does anything like what I want to do.
I'm looking for a simple query interface that provides generic access to
elements and attributes, possibly with iterator-style access.
Here is an example XML file, and how I would like to go about parsing
it:
<Container name="foo" type="bar">
<Foo name="element" length="42"/>
<Object name="object1">
<SubObject/>
</Object>
<Object name="object2">
<SubObject/>
</Object>
</Container>
// open file (somehow)
XML::File file(filename);
// search for a top-level element
XML::Element element = file.GetElement("Container");
// query attributes
XML::Attribute nameAttr = element.GetAttribute("name");
XML::Attribute typeAttr = element.GetAttribute("type");
// get attribute values
std::string name, type;
nameAttr >> name;
typeAttr >> type;
// look for specific sub-element
XML::Element fooElem = element.GetElement("Foo");
// read attributes directly
fooElem.GetAttribute("name") >> name;
int length;
fooElem.GetAttribute("length") >> length;
// loop over elements by iterator
XML::element_iterator it = element.begin("Object");
while (it != element.end())
{
XML_Element &objElem = (*it);
objElem.GetAttribute("name") >> name;
// etc ...
}
I think something like this is pretty straightforward without all that
DOM complexity. I think this interface can be layered on top of expat.
Does the C++ SAX interface already do something like this? *should* I be
using DOM instead for something this simple?
--
Paul Miller - stele at fxtech.com
xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To unsubscribe, mailto:majordomo at ic.ac.uk the following message;
unsubscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)
More information about the Xml-dev
mailing list