Boost logo

Boost :

From: Marcin Kalicinski (kalita_at_[hidden])
Date: 2005-11-09 19:46:50


Hi Everybody,

Property tree is a data structure - a tree of (key, value) pairs. It
differs from its cousin, "usual" PropertyMap, because it is hierarchical,
not linear. Thus, it is more like a minimalistic Document Object Model, but
not bound to any specific file format. It can store contents of XML files,
windows registry, INI files, even command line parameters. The library
contains parsers for all these formats, and more.

I tried to make the library as high quality as possible before posting here,
so it contains a (hopefully) full documentation, and a comprehensive set of
regression tests - more than 300 test cases.

By any chance it is not a substitute for (upcoming?) boost XML library - it
only supports a fairly narrow subset of XML, and focuses rather on being
format-independent.

I uploaded it to the vault root dir, file name is property_tree.zip.

For more curious, excerpt from the doc:

Property tree is a recursive data structure that stores a single data
string, and an ordered list of (key, value) pairs, where value is a property
tree itself. It therefore forms a tree, hence the name. It is a versatile
structure that can store in uniform way data coming from various sources,
such as XML or INI files, as well as windows registry, program command line
etc.

Property tree interface is similar to the interface of a standard C++
container. It supports iterators, insertion, erasing, searching etc. One can
think of it as a sort of Document Object Model, which is minimalistic, not
bound to any specific file format, designed to be easy to use, and comes as
Boost-compatible, headers only C++ library. Many software projects develop a
similar tool at some point of their lifetime, and property tree long ago
originated the same way. I hope the library can save many from reinventing
the wheel.

cheers,
Marcin Kalicinski


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk