875d4c9d1d
- took maintainership - updated DEPENDS for testing purposes (not required) ChangeLog: version: 3.32 date: $Date: 2007-11-13T18:10:03.393214Z $ # minor maintenance release with a bug fix fix: change to the regexp that parses XPath-like conditions so it can accept leading non-ascii letters ([^\W\d] does not work), not used in perl 5.005 fix: set use utf8 (except in 5.005), which gets rid of the dreaded "SWASHNEW" error in 5.6. fixed things that then broke in 5.6. version: 3.31 # minor maintenance release, fixing some tests tests: fixes to stop tests from failing in various configurations Changes in 3.30 fixed a couple of bugs in namespace handling, spotted by Shlomo Yonas (see https://rt.cpan.org/Ticket/Display.html?id=27617 and http://www.perlmonks.org/?node_id=624830) added the XML::Twig::Elt fields method which returns a list of fields added the normalize method in XML::Twig and XML::Twig::Elt, which merge together consecutive pcdata elements. As much as possible (so far after a cut, delete or erase), the twig is kept normalized, eg there are no consecutive #PCDATA elements in it. Suggestion of someone whose name (and emails) I can't find at the moment. added the indented_a / cvs format for pretty_print, that makes the output friendly to line-oriented version control tools, as described in http://tinyurl.com/2kwscq (RT #24954). Thanks to Sjur Moshagen for a patch that I adapted to the current version. fixed bug RT #25113: system entities were not properly resolved if the XML file was not in the current directory. Thanks to Dave Charness for the patch. Added the XML::Twig method finish_now that terminates parsing immediately, without checking the rest of the XML. This feature was half suggested by Nick Clayton added the -s option to xml_split, which splits when the given size is reached for a file, suggested by Radek Saturka. added the -g option to xml_split, which groups elements to be split, suggested and tested by Dhirendra Singh Kholia. added the safe_parsefile_html and safe_parseurl_html methods, and a --html option to xml_grep. Suggested by Bill Ricker. by default xml_grep now skips non well-formed files, the --strict option makes it die when it finds one fixed a bunch of bugs in xml_grep fixed a warning when using optional modules with a version number that includes an _, spotted and fix suggested by Bill Ricker. Fixed test failure on cygwin, thanks to Erik Rantapaa for the patch. Fixed a bunch of typos in docs, RT #25836, spotted and fixed by David Steinbrunner Improved re-use of XML::Twig objects for repetitive parsing. It looks like it should be OK now , but I am sure I haven't tested all cases yet (especially when DTDs and entities are involved). HTML parsing improved: XML::Twig now tries to find the proper encoding for the document (that's not done by HTML::TreeBuilder at the moment). XML::Twig::Elt purge and flush methods now only purge/flush up to the element, not up to the current element in the twig (duh!) Fixed bug in handlers of the form elt[string(subelt)="foo"] and elt[string(subelt)=1] which did not work at all fixed bug in parameter entity output, spotted by BenHopkins on perlmonks (see http://www.perlmonks.org/?node_id=618360) fixed bug in xml_string: options were not used improved error reporting for missing SYSTEM entities, including the option to set twig_expand_external_ents to -1, which makes missing SYSTEM entities not fatal, but reports them in $t->{twig_missing_system_entities} Thanks to Frank Wegmann for his suggestions and for testing the various versions of the feature fixed internals so new versions of Pod::Coverage won't barf Changes in 3.29 fixed a bug in the handling of handlers after an ignore (RT #24392, reported by Robert Eden). Changes in 3.28 now builds on Windows and OS2 refactored the code that triggers handlers, more complex expressions can now be handled, such as '/doc/section[@def="1"]/title' COMPATIBILITY WARNING Up to version 3.26, you could change the attribute of a parent of a node on which you had a handler, and be able to trigger a handler on that parent node based on the new attribute value: XML::Twig->new( twig_handlers => { 'sect/title' => sub { $_->parent->set_att( has_title => 1)}, 'sect[@has_title="1"]'=> sub { ... }, # called for any sect that has } # a title ); This won't work now. The trigger expression ('sect[@has_title="1"]') is evaluated strictly against the input XML. This is more logical and consistent (if you changed the element name, the new name was never used in the evaluation of the trigger). The only exception to that rule is if you use "private attributes": attributes which name starts with a '#'. By definition this in an invalid XML name, so it can't be in the input, and has to have been created . In that case the code that evaluates the trigger looks at the attribute in the element in the tree in memory (if it exists). So in the example above, if you replace 'has_title' by '#has_title', everything will work fine. Note that private attributes are not output when using the print/sprint/xml_string... methods. fixed xml_pp so it does not leave a tempfile and a broken original file all when the original file is not well-formed. added the nparse_pp method that does an nparse with pretty_print set to 'indented', nparse_e that sets error_context, and nparse_ppe that does both added XML::Twig::Elt tag_to_span and tag_to_div methods (turn an element into a span/div and set its class to the old tag name) added the quote option for XML::Twig new, which sets the output quote character for attributes ('single' or 'double') added the text_only and xml_text_only methods that return the text of the element, but not of the sub-elements. added outer_xml method (synonym for sprint) fixed bug where entity names were not matched properly (RT #22854, spotted by Bob Faist) fixed bug on some DOCTYPE config with twig_print_outside_roots fixed bug in set_keep_encoding (the method, not the option). fixed bug in simplify: the code attempted to replace variables in attribute values even if no option required it, spotted by Klaus Rush clean-up and fixed bugs in ignore: the method can now be called from a regular handler (it always could but the docs did not say so, thanks to kudra for noticing this). It can also be called to ignore a parent of the current element. There were bugs there, and the tree was not built properly added error message when an XPath query with a leading / is used on a node that does not belong to a whole twig (because it's been cut or because the twig itself went out of scope) when parsing HTML with error_context set, the HTML is indented, in order to give better error report |
||
---|---|---|
.. | ||
patches | ||
DESCR | ||
distinfo | ||
Makefile |