Xport, XHTML parsing & objective reporting toolkit, is a C++ template class library, which can be included in any C++ project, to enable the creation and generation of xhtml documents. Although Xport was developed with the idea of creating xhtml documents for reporting purposes, Xport can be used to create xhtml documents for many other uses as well.
Xport is distributed as an open source library under the GPL v3 open source license. Using Xport alone, and some basic knowledge of (X)HTML and stylesheets, you can create rich xhtml based reports.
Xport also provides xhtml and stylesheet parsing capabilities. Xport can parse practically any xhtml document, and HTML documents that are not overly mal-formed.
Xport provides the capability of generating and parsing documents of various document types. Three document type classes are provided with Xport, xhtml strict 1.0, xhtml transitional 1.0, and xhtml frameset 1.0. Xport's flexible design also allows for the easy inclusion of additional document types. Which ever document type you use with Xport, Xport enforces the rules of that particular document type.
Xport also provides the capability of working with standard character types, or wide character types to support unicode.
Multiple types of iterators are available in Xport to provide STL like capabilities when working with documents, elements, and stylesheets. These iterators are compatible with STL containers and algorithms. A descendant iterator is also provided to allow the traversal of the document tree, or subtree within a document. Using STL's algorithms, any distinguishable element in the document tree can be found quickly and easily.
Xport contains a well designed class hierarchy, and a rich well documented interface. Key classes are
appropriately named to convey their purpose. Type names
stylesheet_rule, make using the classes intuitive. Although Xport is made up
entirely of class templates, there is no need to use template syntax when using Xport, as type aliases are provided for all the various class templates and document types. Many of the the
operations in the key classes in Xport reflect those operations found in STL container, providing a intuitive and friendly interface.
Xport is available for download and is distributed under the GNU General Public License, Version 3 (GPLv3).