Revision history for XML-Reader
0.01 22 Mar 2009
First version, released on an unsuspecting world.
0.02 25 Mar 2009
add method level to indicate the nesting level of the XPath expression.
0.03 26 Mar 2009
resolve circular reference in XML::TokeParser to avoid Memory leak
0.04 27 Mar 2009
Replace XML::TokeParser by XML::Parser
add option {using => ...} and also add method prefix
0.05 28 Mar 2009
fix a bug in option {using => ...}
0.06 30 Mar 2009
re-order the output in XML::Reader->path
0.07 02 Apr 2009
add a method XML::Reader->comment
0.08 06 Apr 2009
update warranty
0.09 06 Apr 2009
update licence
update Makefile.PL
0.10 20 Jun 2009
Take out one test from t/0010-test.t
0.11 24 Jun 2009
add method XML::Reader->is_init_attr() and XML::Reader->attr().
also, 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.12 28 Jun 2009
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.13 28 Jun 2009
error correction in XML::Reader->is_init_attr()
0.14 29 Jun 2009
add {filter => 3} and method $rdr->att_hash()
0.15 29 Jun 2009
internal tuning
0.16 30 Jun 2009
more internal tuning
0.17 05 Jul 2009
even more internal tuning in handle_start() and in handle_end()
0.18 30 Jul 2009
remove method XML::Reader->is_init_attr()
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.19 22 Aug 2009
remove option {filter => 0} and {filter => 1}
remove method new()
introducing "use Carp" and "croak"
clean up documentation and test cases
0.20 25 Aug 2009
add method is_value()
add some example code to parse an XML file with XML::Reader
0.21 12 Sep 2009
in method XML::Reader::DESTROY()
replace $self->{ExpatNB}->parse_done;
by $self->{ExpatNB}->release;
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.22 18 Sep 2009
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.23 19 Sep 2009
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.24 19 Sep 2009
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.25 20 Sep 2009
AGAIN AND AGAIN: Need to bump up the version number, the indexing is still not working.
renamed the two *.pm files into *.pod again.
0.26 09 Oct 2009
Introduce a new function: 'slurp_xml' to slurp xml into an array-ref
0.27 10 Oct 2009
Change the way 'slurp_xml' handles its parameters
0.28 13 Oct 2009
Allow multiple roots in 'slurp_xml'
inject a "use 5.008" into Makefile.PL
0.29 29 Oct 2009
Add {filter => 5}
0.30 25 Jan 2010
include
translated POD-documentation into French: XML-Reader-fr.pod
translated POD-documentation into German: XML-Reader-de.pod
add Build.PL
0.31 29 Jan 2010
- 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.
- harmonize the version number in XML::Reader::Token with the version number
in XML::Reader
0.32 17 Feb 2010
Fix a problem in Build.PL which had an incorrect version use 5.010; the correct
version is use 5.008;
0.33 25 Apr 2010
For {filter => 5}:
- you can now have duplicate roots (which was not possible before)
- added a new function $self->rstem
- allow branch => '*' which will effectively collect all events and construct
a sub-tree in XML format, that XML-format has the correct translations
+ < into <
+ > into >
+ & into &
+ ' into '
+ " into "
- allow relative roots, such as 'tag1/tag2' or '//tag1/tag2'
0.34 26 Apr 2010
For {filter => 5}: restrict { branch => '...' } to { branch => '*' } only
0.35 28 Apr 2010
Relicencing under the "Artistic Licence 2.0"
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
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
0.36 01 June 2010
in case of {filter => 5}, make value() take over the role of rvalue()
Improve the content of the README file
0.37 02 June 2010
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.38 18 Oct 2011
For PYX output, replace a single \ by a double \\ and replace tabs by a literal "\t"
Remove META.yml from MANIFEST
0.39 28 Oct 2011
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.
Remove deprecated functions newhd() and rstem()
Introduce XML::MinWriter
0.40 24 Jun 2012
Allow XML::Reader to use the pure perl parser XML::Parsepp as an alternative to the
usual XML::Parser.
0.41 28 Jul 2012
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.42 30 Jul 2012
Add test file 0040_test_Module.t
0.43 04 Aug 2012
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 '
Include explicit dependency on version 0.04 of XML::Parsepp
0.44 04 Aug 2012
Allow { dupatt => '|' } with slurp_xml()
Allow { root => '/' } with { filter => 5 } / slurp_xml()
0.45 05 Aug 2012
Refactor the code that allows { root => '/' } with { filter => 5 } / slurp_xml()
0.46 06 Aug 2012
Error correction in the code that allows { root => '/' } with { filter => 5 } / slurp_xml()
0.47 07 Aug 2012
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
Yet more error correction in the code that allows { root => '/' } with { filter => 5 }
/ slurp_xml()
0.48 09 Aug 2012
Refactor Test cases in XML::Reader::Testcases.
0.49 09 Aug 2012
Make "use XML::Reader" (without any arguments) not load any of the modules "XML::Parser"
or "XML::Parsepp".
0.50 08 Aug 2014
Add the possibility of reading http (using Net::HTTP)
0.51 09 Aug 2014
Fix a typing error in the POD documentation:
"...an URL..." ==> "...a URL..."
0.52 12 Aug 2014
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.53 13 Aug 2014
This entry (0.53) only exists because I have forgotten to put in a changes entry
in the previous version (0.52)