XML Tree Changes ================ This file last updated: Tue Mar 18 10:17:37 PST 2003 ******************************************************************************* 2.2.2 ******************************************************************************* BUG FIXES --------- * The XML::Tree Perl module wouldn't build against a threading Perl. ******************************************************************************* 2.2.1 ******************************************************************************* BUG FIXES --------- * Made changes so it compiles using g++ 3.1. * Made changes so it compiles under Mac OS X. ******************************************************************************* 2.2 ******************************************************************************* NEW FEATURES ------------ * The class hierarchy has been simplified by folding Parent_Node into Content_Node. BUG FIXES --------- * Comment parsing was broken in that it allowed "->" in addition to "-->" to terminate a comment. * Processing instructions were broken in that the order of the attributes wasn't preserved. * utf_range::const_iterator::operator+=() was broken. ******************************************************************************* 2.1.4 ******************************************************************************* BUG FIXES --------- * Fixed parsing bug with text nodes that were a single character. ******************************************************************************* 2.1.3 ******************************************************************************* BUG FIXES --------- * Fixed a compile problem in the Perl module with C++ namespaces. * Fixed a formatting error in the XML::Tree documentation. ******************************************************************************* 2.1.2 ******************************************************************************* BUG FIXES --------- * The library wasn't (but is now) thread-safe. ******************************************************************************* 2.1.1 ******************************************************************************* BUG FIXES --------- * This releases fixes a lot of compile issues (mostly namespaces) with g++ 3.0. * Character comparisons on some platforms were invalid due to signed-ness issues. ******************************************************************************* 2.1 ******************************************************************************* NEW FEATURES ------------ * The code is now properly namespaced. * New utility functions have been added: xml_find(), xml_text_of(), and xml_text_of_find(). Consequently, parse_xml() has been renamed xml_parse() for uniformity. ******************************************************************************* 2.0 ******************************************************************************* NEW FEATURES ------------ * Added support for parsing Unicode UTF-16 encoded text. * Added support for parsing XML CDATA sections. BUG FIXES --------- * When creating an XML::Tree in Perl from an array, comment nodes were not created from strings like ""; instead, they were made ordinary text nodes. * When creating an XML::Tree in Perl from an array, processing instruction nodes were not created for nodes whose names begin with '?'. * When creating an array-of-hashes data structure from an XML Tree, didn't prepend a '?' to the names of processing instruction nodes. ******************************************************************************* 1.5.3 ******************************************************************************* BUG FIXES --------- * Some C headers on some implementations define open/close as macros to remap them to functions that handle files larger than 2 GB. This works fine in C, but can break C++ where classes have open/close member functions. ******************************************************************************* 1.5.2 ******************************************************************************* BUG FIXES --------- * For as_string() and write() with pretty-printing, text nodes removal of leading and trailing whitespace characters was off. ******************************************************************************* 1.5.1 ******************************************************************************* BUG FIXES --------- * XML is case-sensitive, but everything was folded to lower case. The good news is that by removing case-folding, XML Tree will instantly work with UTF-8 text. ******************************************************************************* 1.5 ******************************************************************************* NEW FEATURES ------------ * The Perl API now has a $node->delete() method that deletes a node, and all of its child nodes, if any, from the XML tree. ******************************************************************************* 1.4.2 ******************************************************************************* BUG FIXES --------- * The Attribute_Node(3) manual page erroneously listed name() member functions. * The Content_Node(3) manual page still listed "visitor const&". * The HTML_Node(3) manual page omitted the bool options for parse_xml(). * The Text_Node(3) manual page erroneously listed text() member functions. ******************************************************************************* 1.4.1 ******************************************************************************* BUG FIXES --------- * Added missing "return o;" in space(). The compiler should have caught this. ******************************************************************************* 1.4 ******************************************************************************* NEW FEATURES ------------ * For the Perl interface, the $node->children() method now returns a tied array if the children. This allows the children to be manipulated via all the normal Perl array functions: push, shift, unshift, etc. ******************************************************************************* 1.3 ******************************************************************************* NEW FEATURES ------------ * Added XML::Tree $node->is_attribute(). * Added XML::Tree $node->find_if( \&func ). ******************************************************************************* 1.2 ******************************************************************************* NEW FEATURES ------------ * Added the ability to find an Attribute_Node by its name. * Added iterators to an XML tree. * Added as_string(), the ability to convert an XML_Tree to a string representation. * Replaced single new() method with from_array(), from_file(), and from_string(). * For XML_Node::write(), added ability to specify initial indent. BUG FIXES --------- * Added silly macros to fix compilation problems with Perl versions older than 5.6.0. ******************************************************************************* 1.1 ******************************************************************************* NEW FEATURES ------------ * Rearchitected the C++ class hierarchy to make Content_Node directly derived from Attribute_Node rather than through Element_Node. Consequently, Element_Node was renamed to Empty_node which was its original intent. * In XML::Tree when using as_string(), there is now the option whether to include text nodes that are entirely whitespace or not; or include comments or not. * The XML::Tree->new() method can now take a reference to an array-of-hashes data structure (just as is returned by as_array()) alternatively to a filename and generate a new XML::Tree object. BUG FIXES --------- * In XML::Tree when using as_string(), failed to initialize options to false. ******************************************************************************* 1.0 ******************************************************************************* * Initial release.