The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Revision history for XML-Reader

0.62 - Sat Aug 23 12:49:55 CET 2014

  [DOCUMENTATION]

  - Just use a Makefile.PL and not a Build.PL the latter does not have any
    added value any more (suggested by Gabor SZABO)

  - In Makefile.PL ==> meta files link to repository (suggested by Gabor SZABO)

  - Changelog dates are better written as YYYY.MM.DD and probably ordered in
    the other, descending, direction (suggested by Gabor SZABO)

0.61 - Fri Aug 22 10:41:06 CET 2014

  [ENHANCEMENTS]

  - Reflect latest changes in Acme::HTTP that make Acme::HTTP require
    Net::HTTP/S::NB dynamically

0.60 - Fri Aug 22 08:39:19 CET 2014

  [ENHANCEMENTS]

  - Reflect latest changes in Acme::HTTP that returns a correctly blessed
    Acme::HTTP object, also there is now more data abstraction in Acme::HTTP using
    getter and setter subroutines

0.59 - Thu Aug 21 10:53:28 CET 2014

  [ENHANCEMENTS]

  - Reflect latest changes in Acme::HTTP that allows non-blocking read

0.58 - Tue Aug 19 09:25:15 CET 2014

  [BUG FIX]

  - Error correction in get_token(): Change the existing if-statement:
    if (ref($self->NB_fh) eq 'Net::HTTP')
    into
    if (ref($self->NB_fh) eq 'Net::HTTP' or ref($self->NB_fh) eq 'Net::HTTPS')

  [DOCUMENTATION]

  - update the documentation and test cases

0.57 - Mon Aug 18 19:48:15 CET 2014

  [ENHANCEMENTS]

  - Allow a simple conditional [@attr="value"] inside a path expression,
    for example { root => '/abs/sub1[@name="alpha"]/sub2',
    branch => [ 'path3[@id="t1"]/path4', 'path5/path6/@code="data"' ] }

0.56 - Mon Aug 18 17:57:07 CET 2014

  [ENHANCEMENTS]

  - allow the branch section to contain sub-paths that don't start with slash
    before: { root => '/abs/sub1/sub2', branch => [ '/path3/path4', '/path5/path6' ] }
    after:  { root => '/abs/sub1/sub2', branch => [ 'path3/path4', 'path5/path6' ] }

0.55 - Mon Aug 18 13:24:47 CET 2014

  [ENHANCEMENTS]

  - replace the comple time "use Acme::HTTP" by the run time "require Acme::HTTP"

0.54 - Sun Aug 17 16:17:50 CET 2014

  [ENHANCEMENTS]

  - introduce Acme::HTTP

0.53 - Wed Aug 13 15:10:37 CET 2014

  [DOCUMENTATION]

  - This entry (0.53) only exists because I have forgotten to put in a changes entry
    in the previous version (0.52)

0.52 - Tue Aug 12 16:02:50 CET 2014

  [DOCUMENTATION]

  - I had forgotten to change another thing in the documentation (since 0.40, 24 Jun 2012):
    use XML::Reader; should be spelled: use XML::Reader qw(XML::Parser);

0.51 - Sat Aug  9 12:07:58 CET 2014

  [BUG FIX]

  - Fix a typing error in the POD documentation: "...an URL..." ==> "...a URL..."

0.50 - Fri Aug  8 17:50:47 CET 2014

  [ENHANCEMENTS]

  - Add the possibility of reading http (using Net::HTTP)

0.49 - Thu Aug  9 14:24:35 CET 2012

  [ENHANCEMENTS]

  - Make "use XML::Reader" (without any arguments) not load any of the modules "XML::Parser"
    or "XML::Parsepp".

0.48 - Thu Aug  9 09:38:38 CET 2012

  [DOCUMENTATION]

  - Refactor Test cases in XML::Reader::Testcases.

0.47 - Tue Aug  7 17:12:59 CET 2012

  [DOCUMENTATION]

  - Remove the dependencies on XML::Parser and XML::Parsepp and refactor/move the tests
    out into XML::Reader::Testcases. The tests will later be called by the new modules
    XML::Reader::PP and by XML::Reader::RS

  [BUG FIX]

  - Yet more error correction in the code that allows { root => '/' }
    with { filter => 5 } ==> slurp_xml()

0.46 - Mon Aug  6 10:06:18 CET 2012

  [BUG FIX]

  - Error correction in the code that allows { root => '/' } with { filter => 5 } / slurp_xml()

0.45 - Sun Aug  5 09:42:57 CET 2012

  [REFACTORING]

  - Refactor the code that allows { root => '/' } with { filter => 5 } / slurp_xml()

0.44 - Sat Aug  4 17:13:43 CET 2012

  [ENHANCEMENTS]

  - Allow { dupatt => '|' } with slurp_xml()

  - Allow { root => '/' } with { filter => 5 } / slurp_xml()

0.43 - Sat Aug  4 12:21:12 CET 2012

  [ENHANCEMENTS]

  - Add a new option "dupatt" to XML::Reader->new() to allow for duplicate
    attributes: (only valid when used in conjunction with "use XML::Reader qw(XML::Parsepp);")
    my $rdr = XML::Reader->new('test.xml', {dupatt => '|'});

  - The concatenation string {dupatt => $str} is restricted to printable ascii excluding alphanumeric, " and '

  [DOCUMENTATION]

  - Include explicit dependency on version 0.04 of XML::Parsepp

0.42 - Mon Jul 30 08:38:04 CET 2012

  [DOCUMENTATION]

  - Add test file 0040_test_Module.t

0.41 - Sat Jul 28 10:02:58 CET 2012

  [ENHANCEMENTS]

  - Change the way XML::Reader->new is used: (XML::Reader->new() now throws an
    exception)
    Old way: my $rdr = XML::Reader->new('test.xml') or die "Error: $!";
    New way: my $rdr = eval{ XML::Reader->new('test.xml') } or die "Error: $@";
    or new : my $rdr = XML::Reader->new('test.xml');

0.40 - Sun Jun 24 10:58:34 CET 2012

  [ENHANCEMENTS]

  - Allow XML::Reader to use the pure perl parser XML::Parsepp as an alternative to the
    usual XML::Parser.

0.39 - Fri Oct 28 12:17:53 CET 2011

  [ENHANCEMENTS]

  - For filter => 5, add a new option '+' : {root => '/path1/path2', branch => '+'}
    that allows to return an array of PYX-elements.

  - For filter => 5, existing option '*' : {root => '/path1/path2', branch => '*'}
    replace reference to scalar in $self->{rvalue} by a plain scalar.

  [DEPRECATIONS]

  - Remove deprecated functions newhd() and rstem()

  [DOCUMENTATION]

  - Introduce XML::MinWriter

0.38 - Tue Oct 18 13:22:28 CET 2011

  [ENHANCEMENTS]

  - For PYX output, replace a single \ by a double \\ and replace tabs by a literal "\t"

  [DOCUMENTATION]

  - Remove META.yml from MANIFEST

0.37 - Wed Jun  2 13:47:18 CET 2010

  [DOCUMENTATION]

  - The POD documentation has headers (=head1 and =head2) that are too
    complicated, i.e. they contain characters like '(', ')' and '>'. This confuses
    the POD Parser. This version simplifies the headers. (all 3 POD files are
    affected: 'Reader.pm', 'Reader_fr.pod' and 'Reader_de.pod'

0.36 - Tue Jun  1 16:32:23 CET 2010

  [ENHANCEMENTS]

  - in case of {filter => 5}, make value() take over the role of rvalue()

  [DOCUMENTATION]

  - Improve the content of the README file

0.35 - Wed Apr 28 11:46:18 CET 2010

  [ENHANCEMENTS]

  - Replace XML::Reader::newhd() by XML::Reader::new()

  - Add option {mode => 'attr-bef-start' | 'attr-in-hash' | 'pyx' | 'branches'}
    as an alternative to the existing {filter => 2|3|4|5}

  - Add an option {sepchar => 'xyz'} to XML::Reader->new

  [BUG FIX]

  - For {parse_pi => 1}, fix a bug with $rdr->dec_hash->{standalone}
    used to be '1' and '' which is false, 'yes' and 'no' is correct

  - For {filter => 5} function rstem() is redundant ==> replace function rstem() by path()

  - Fix a bug in functions is_text() / is_value()

  - Allow the writing of comments and PI if {branch => '*'} is selected

  [DOCUMENTATION]

  - Relicencing under the "Artistic Licence 2.0"

0.34 - Mon Apr 26 16:33:09 CET 2010

  [ENHANCEMENTS]

  - For {filter => 5}: restrict { branch => '...' } to { branch => '*' } only

0.33 - Sun Apr 25 09:15:52 CET 2010

  [ENHANCEMENTS]

  - For {filter => 5} you can now have duplicate roots (which was not possible before)

  - added a new function $self->rstem

  - allow relative roots, such as 'tag1/tag2' or '//tag1/tag2'

  - allow branch => '*' which will effectively collect all events and construct
    a sub-tree in XML format, that XML-format has the correct translations
    char < into &lt;
    char > into &gt;
    char & into &amp;
    char ' into &apos;
    char " into &quot;


0.32 - Wed Feb 17 17:32:56 CET 2010

  [BUG FIX]

  - Fix a problem in Build.PL which had an incorrect version use 5.010; the correct
    version is use 5.008;

0.31 - Fri Jan 29 08:52:34 CET 2010

  [BUG FIX]

  - I am suddenly getting automated reports about test failures on systems where
    XML::Parser has not been installed. To fix that problem, I have to add the
    correct module dependency in Build.PL and in Makefile.PL.

  [DOCUMENTATION]

  - harmonize the version number in XML::Reader::Token with the version number
    in XML::Reader

0.30 - Mon Jan 25 11:00:16 CET 2010

  [DOCUMENTATION]

  - include
    translated POD-documentation into French: XML-Reader-fr.pod
    translated POD-documentation into German: XML-Reader-de.pod
    add Build.PL

0.29 - Thu Oct 29 14:20:21 CET 2009

  [ENHANCEMENTS]

  - Add {filter => 5}

0.28 - Tue Oct 13 11:35:54 CET 2009

  [ENHANCEMENTS]

  - Allow multiple roots in 'slurp_xml'

  [DOCUMENTATION]

  - inject a "use 5.008" into Makefile.PL

0.27 - Sat Oct 10 14:24:33 CET 2009

  [ENHANCEMENTS]

  - Change the way 'slurp_xml' handles its parameters

0.26 - Fri Oct  9 11:41:32 CET 2009

  [ENHANCEMENTS]

  - Introduce a new function: 'slurp_xml' to slurp xml into an array-ref

0.25 - Sun Sep 20 17:34:28 CET 2009

  [DOCUMENTATION]

  - Need to bump up the version number, the indexing is still not working.
    renamed the two *.pm files into *.pod again.

0.24 - Sat Sep 19 08:29:45 CET 2009

  [DOCUMENTATION]

  - Need to bump up the version number again, the indexing is still not working.
    That's probably due to the missing =pod directive.
    I have now added the =pod directive and I keep my fingers crossed

0.23 - Sat Sep 19 08:41:26 CET 2009

  [DOCUMENTATION]

  - Needed to bump up the version number again due to wrong indexing.
    Now I am introducing two new dummy *.pm files with their proper Packages
    rename pod/XML-Reader-de.pod into lib/XML/Reader/German.pm
    rename pod/XML-Reader-fr.pod into lib/XML/Reader/French.pm

0.22 - Fri Sep 18 09:42:04 CET 2009

  [DOCUMENTATION]

  - Needed to bump up the version number due to wrong indexing of the
    pod/XML-Reader-de/-fr.pod file in http://search.cpan.org/
    Basically, I am renaming/relocating the two files
    pod/XML-Reader-de.pod into lib/XML/Reader-de.pod
    pod/XML-Reader-fr.pod into lib/XML/Reader-fr.pod

0.21 - Sat Sep 12 11:16:08 CET 2009

  [BUG FIX]

  - in method XML::Reader::DESTROY()
    replace $self->{ExpatNB}->parse_done;
    by      $self->{ExpatNB}->release;

  [DOCUMENTATION]

  - in XML::Reader->new(): inject an {XR_debug} into $self->{ExpatNB}, if so requested
    by $opt{debug}

  - add t/0030_test.t to test that XML::Reader does not leak memory

  - explain documentation (=item is_value) in more detail

  - translate POD-documentation into French: pod/XML-Reader-fr.pod
    translate POD-documentation into German: pod/XML-Reader-de.pod

  - re-licence under the Artistic licence

0.20 - Tue Aug 25 12:05:55 CET 2009

  [ENHANCEMENTS]

  - add method is_value()

  [DOCUMENTATION]

  - add some example code to parse an XML file with XML::Reader

0.19 - Sat Aug 22 10:59:28 CET 2009

  [DEPRECATIONS]

  - remove option {filter => 0} and {filter => 1}

  - remove method new()

  [ENHANCEMENTS]

  - introducing "use Carp" and "croak"

  [DOCUMENTATION]

  - clean up documentation and test cases

0.18 - Thu Jul 30 11:30:05 CET 2009

  [DEPRECATIONS]

  - remove method XML::Reader->is_init_attr()

  [ENHANCEMENTS]

  - add processing instructions ("PI")

  - add option {parse_ct} for comments

  - add option {parse_pi} for processing-instructions

  - add option {filter => 4} and method XML::Reader->pyx() for PYX compliant data

0.17 - Sun Jul  5 16:09:06 CET 2009

  [REFACTORING]

  - even more internal tuning in handle_start() and in handle_end()

0.16 - Tue Jun 30 08:26:47 CET 2009

  [REFACTORING]

  - more internal tuning

0.15 - Mon Jun 29 08:47:08 CET 2009

  [REFACTORING]

  - internal tuning

0.14 - Mon Jun 29 14:30:23 CET 2009

  [ENHANCEMENTS]

  - add {filter => 3} and method $rdr->att_hash()

0.13 - Sun Jun 28 12:26:39 CET 2009

  [BUG FIX]

  - error correction in XML::Reader->is_init_attr()

0.12 - Sun Jun 28 13:02:58 CET 2009

  [ENHANCEMENTS]

  - add constructor XML::Reader->newhd, which is almost identical to
    XML::Reader->new, except it defaults to {filter => 2}, whereas
    the existing XML::Reader->new defaults to {filter => 0}

0.11 - Wed Jun 24 08:51:28 CET 2009

  [ENHANCEMENTS]

  - add method XML::Reader->is_init_attr() and XML::Reader->attr().

  - in case of {filter => 1}, undefine XML::Reader->is_start(),
    XML::Reader->is_init_attr(), XML::Reader->is_end(), XML::Reader->comment().

  - Introduce {filter => 2} which removes the redundant start-line before
    attributes.

0.10 - Sat Jun 20 08:45:05 CET 2009

  [DOCUMENTATION]

  - Take out one test from t/0010-test.t

0.09 - Mon Apr  6 15:28:58 CET 2009

  [DOCUMENTATION]

  - update licence
    update Makefile.PL

0.08 - Mon Apr  6 17:34:07 CET 2009

  [DOCUMENTATION]

  - update warranty

0.07 - Thu Apr  2 08:39:53 CET 2009

  [ENHANCEMENTS]

  - add a method XML::Reader->comment

0.06 - Mon Mar 30 08:24:50 CET 2009

  [ENHANCEMENTS]

  - re-order the output in XML::Reader->path

0.05 - Sat Mar 28 17:25:28 CET 2009

  [BUG FIX]

  - fix a bug in option {using => ...}

0.04 - Fri Mar 27 15:04:18 CET 2009

  [ENHANCEMENTS]

  - Replace XML::TokeParser by XML::Parser

  - add option {using => ...}

  - add method prefix

0.03 - Thu Mar 26 15:27:59 CET 2009

  [BUG FIX]

  - resolve circular reference in XML::TokeParser to avoid Memory leak

0.02 - Wed Mar 25 17:31:44 CET 2009

  [ENHANCEMENTS]

  - add method level to indicate the nesting level of the XPath expression.

0.01 - Sun Mar 22 12:30:17 CET 2009

  [ENHANCEMENTS]

  - First version, released on an unsuspecting world.