Revision history for XML-Reader 0.67 - 2018-11-21T21:42:12+01:00 [DOCUMENTATION] - correct an omission in the english POD documentation where I forgot to add the XML::Parser of use XML::Reader qw(slurp_xml); Therefore, the correct line is: use XML::Reader qw(XML::Parser slurp_xml); 0.66 - 2018-01-30T10:00:00+01:00 [DOCUMENTATION] - 'use' this module now defaults to using XML::Parser, and only if this fails, fallback to XML::Parsepp. [DOCUMENTATION] - Add META.json to the package 0.65 - 2014-12-28T09:24:30+01:00 [DOCUMENTATION] - Migrate to Dist::Zilla 0.64 - 2014-08-24T18:23:41+01:00 [DOCUMENTATION] - Add a .gitignore file (suggested by Gabor SZABO) - Specify the actual version for the depenency Acme::HTTP in Makefile.PL 0.63 - 2014-08-23T15:55:12+01:00 [DOCUMENTATION] - Changelog dates are better written as YYYY.MM.DD and probably ordered in the other, descending, direction (suggested by Gabor SZABO) Remark: I have decided to follow the ISO 8601 standard at http://www.w3.org/TR/NOTE-datetime 0.62 - 2014-08-23T12:49:55+01:00 [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) 0.61 - 2014-08-22T10:41:06+01:00 [ENHANCEMENTS] - Reflect latest changes in Acme::HTTP that make Acme::HTTP require Net::HTTP/S::NB dynamically 0.60 - 2014-08-22T08:39:19+01:00 [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 - 2014-08-21T10:53:28+01:00 [ENHANCEMENTS] - Reflect latest changes in Acme::HTTP that allows non-blocking read 0.58 - 2014-08-19T09:25:15+01:00 [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 - 2014-08-18T19:48:15+01:00 [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 - 2014-08-18T17:57:07+01:00 [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 - 2014-08-18T13:24:47+01:00 [ENHANCEMENTS] - replace the comple time "use Acme::HTTP" by the run time "require Acme::HTTP" 0.54 - 2014-08-17T16:17:50+01:00 [ENHANCEMENTS] - introduce Acme::HTTP 0.53 - 2014-08-13T15:10:37+01:00 [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 - 2014-08-12T16:02:50+01:00 [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 - 2014-08-09T12:07:58+01:00 [BUG FIX] - Fix a typing error in the POD documentation: "...an URL..." ==> "...a URL..." 0.50 - 2014-08-08T17:50:47+01:00 [ENHANCEMENTS] - Add the possibility of reading http (using Net::HTTP) 0.49 - 2012-08-09T14:24:35+01:00 [ENHANCEMENTS] - Make "use XML::Reader" (without any arguments) not load any of the modules "XML::Parser" or "XML::Parsepp". 0.48 - 2012-08-09T09:38:38+01:00 [DOCUMENTATION] - Refactor Test cases in XML::Reader::Testcases. 0.47 - 2012-08-07T17:12:59+01:00 [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 - 2012-08-06T10:06:18+01:00 [BUG FIX] - Error correction in the code that allows { root => '/' } with { filter => 5 } / slurp_xml() 0.45 - 2012-08-05T09:42:57+01:00 [REFACTORING] - Refactor the code that allows { root => '/' } with { filter => 5 } / slurp_xml() 0.44 - 2012-08-04T17:13:43+01:00 [ENHANCEMENTS] - Allow { dupatt => '|' } with slurp_xml() - Allow { root => '/' } with { filter => 5 } / slurp_xml() 0.43 - 2012-08-04T12:21:12+01:00 [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 - 2012-07-30T08:38:04+01:00 [DOCUMENTATION] - Add test file 0040_test_Module.t 0.41 - 2012-07-28T10:02:58+01:00 [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 - 2012-06-24T10:58:34+01:00 [ENHANCEMENTS] - Allow XML::Reader to use the pure perl parser XML::Parsepp as an alternative to the usual XML::Parser. 0.39 - 2011-10-28T12:17:53+01:00 [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 - 2011-10-18T13:22:28+01:00 [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 - 2010-06-02T13:47:18+01:00 [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 - 2010-06-01T16:32:23+01:00 [ENHANCEMENTS] - in case of {filter => 5}, make value() take over the role of rvalue() [DOCUMENTATION] - Improve the content of the README file 0.35 - 2010-04-28T11:46:18+01:00 [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 - 2010-04-26T16:33:09+01:00 [ENHANCEMENTS] - For {filter => 5}: restrict { branch => '...' } to { branch => '*' } only 0.33 - 2010-04-25T09:15:52+01:00 [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 < char > into > char & into & char ' into ' char " into " 0.32 - 2010-02-17T17:32:56+01:00 [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 - 2010-01-29T08:52:34+01:00 [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 - 2010-01-25T11:00:16+01:00 [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 - 2009-10-29T14:20:21+01:00 [ENHANCEMENTS] - Add {filter => 5} 0.28 - 2009-10-13T11:35:54+01:00 [ENHANCEMENTS] - Allow multiple roots in 'slurp_xml' [DOCUMENTATION] - inject a "use 5.008" into Makefile.PL 0.27 - 2009-10-10T14:24:33+01:00 [ENHANCEMENTS] - Change the way 'slurp_xml' handles its parameters 0.26 - 2009-10-09T11:41:32+01:00 [ENHANCEMENTS] - Introduce a new function: 'slurp_xml' to slurp xml into an array-ref 0.25 - 2009-09-20T17:34:28+01:00 [DOCUMENTATION] - Need to bump up the version number, the indexing is still not working. renamed the two *.pm files into *.pod again. 0.24 - 2009-09-19T08:29:45+01:00 [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 - 2009-09-19T08:41:26+01:00 [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 - 2009-09-18T09:42:04+01:00 [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 - 2009-09-12T11:16:08+01:00 [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 - 2009-08-25T12:05:55+01:00 [ENHANCEMENTS] - add method is_value() [DOCUMENTATION] - add some example code to parse an XML file with XML::Reader 0.19 - 2009-08-22T10:59:28+01:00 [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 - 2009-07-30T11:30:05+01:00 [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 - 2009-07-05T16:09:06+01:00 [REFACTORING] - even more internal tuning in handle_start() and in handle_end() 0.16 - 2009-06-30T08:26:47+01:00 [REFACTORING] - more internal tuning 0.15 - 2009-06-29T08:47:08+01:00 [REFACTORING] - internal tuning 0.14 - 2009-06-29T14:30:23+01:00 [ENHANCEMENTS] - add {filter => 3} and method $rdr->att_hash() 0.13 - 2009-06-28T12:26:39+01:00 [BUG FIX] - error correction in XML::Reader->is_init_attr() 0.12 - 2009-06-28T13:02:58+01:00 [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 - 2009-06-24T08:51:28+01:00 [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 - 2009-06-20T08:45:05+01:00 [DOCUMENTATION] - Take out one test from t/0010-test.t 0.09 - 2009-04-06T15:28:58+01:00 [DOCUMENTATION] - update licence update Makefile.PL 0.08 - 2009-04-06T17:34:07+01:00 [DOCUMENTATION] - update warranty 0.07 - 2009-04-02T08:39:53+01:00 [ENHANCEMENTS] - add a method XML::Reader->comment 0.06 - 2009-03-30T08:24:50+01:00 [ENHANCEMENTS] - re-order the output in XML::Reader->path 0.05 - 2009-03-28T17:25:28+01:00 [BUG FIX] - fix a bug in option {using => ...} 0.04 - 2009-03-27T15:04:18+01:00 [ENHANCEMENTS] - Replace XML::TokeParser by XML::Parser - add option {using => ...} - add method prefix 0.03 - 2009-03-26T15:27:59+01:00 [BUG FIX] - resolve circular reference in XML::TokeParser to avoid Memory leak 0.02 - 2009-03-25T17:31:44+01:00 [ENHANCEMENTS] - add method level to indicate the nesting level of the XPath expression. 0.01 - 2009-03-22T12:30:17+01:00 [ENHANCEMENTS] - First version, released on an unsuspecting world.