OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   simple DOM-style XML parser, in C++?

[ Lists Home | Date Index | Thread Index ]
  • From: Paul Miller <stele@fxtech.com>
  • To: xml-dev <xml-dev@ic.ac.uk>
  • Date: Fri, 03 Dec 1999 15:49:16 -0500

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@fxtech.com

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@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@ic.ac.uk the following message;
unsubscribe xml-dev
To subscribe to the digests, mailto:majordomo@ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@ic.ac.uk)






 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS