SourceForge.net Logo

XMLDOM - Xerces Wrapper

Use Xerces-C++ as simple as possible

Documentation

Examples

The following examples demonstrate how simple it is to work with XML DOM.

Load a XML document into the DOM:

int main( int argc, char* argv[] )
{
	// Get an implementation which is supporting "LS" (Load Save) 
	DomImplementation impl = DomImplementationRegistry::getInstance().getDomImplementation( DomString( "LS" ) );
	assert( ! impl.isNull() );

	DomLSParser parser = impl.createLSParser( DomImplementation::ModeSynchronous, DomImplementation::AnySchema );

	DomDocument doc = parser.parseURI( DomString( "d:\\test.xml" ) );

	DomElement docElement = doc.getDocumentElement();

	displayElement( docElement, 0 );

	std::cout << "Press Enter:" << std::endl;
	std::cin.get();

	return 0;
}

Iterate trough elements in the DOM:

void displayElement( const DomElement& element, int indentationLevel )
{
	// indent the entry
	std::cout << std::string( indentationLevel * 2, ' ' );

	// print the name of the node and it attributes.
	std::cout << element.getNodeName().toLatin1() << " (";
	DomNamedNodeMap attributes = element.getAttributes();

	// iterate trough all attributes
	for( unsigned int i = 0; i < attributes.getLength(); ++i )
	{
		if( i > 0 )
			std::cout << ", ";

		// Cast a node from the named node map into an attribute.
		DomAttribute attribute = attributes.getItem( i ).toAttribute();
		assert( ! attribute.isNull() );

		// Print the name and value of the attribute.
		std::cout << attribute.getName().toLatin1() << "=\"" << attribute.getValue().toLatin1() << "\"";

		// Note: it's possible to reach the goal without cast with the getNodeName() and
		// getNodeValue() methods directly from DomNode.
	}
	std::cout << ")" << std::endl;

	// iterate trough sub elements
	for( DomElement e = element.getFirstChildElement(); ! e.isNull(); e = e.getNextSiblingElement() )
	{
		// recursive call
		displayElement( e, indentationLevel + 1 );
	}
}

Necessary includes for the examples above:

#include <assert.h>
#include <iostream>
#include <string>
#include <XMLDOM/All.h>


using namespace xmldom;

Project

Find all the details on the sourceforge project page: XMLDOM Xecres Wrapper at Sourceforge

License

XMLDOM Xerces Wrapper is licensed under the GNU Lesser General Public License.

Copyright (C) 2007-2008 Bernafon AG http://www.bernafon.com.