HTML::DOM, version 0.034 HTML::DOM is a Perl implementation of the HTML Document Object Model This is an alpha release. So far, the level-2 core, HTML and event DOM interfaces have been implemented, and some of the level-2 style sheet interfaces. RECENT CHANGES See the Changes file for the long version. 0.034 ----- • A couple of incompatible changes that affect only those who are doing arcane things with this distribution. • HTML::DOM’s title method no longer dies when the title element does not exist. • Event dispatch no longer leaves junk in $@. • We now preserve whitespace in the DOM. • get_event_listeners works better with subclasses. • getElementById now works when the element’s ID attribute is set to a reference. 0.033 ----- • HTML::DOM’s base method now falls back to the HTTP headers if the document lacks a elem. It is also better at dealing with cate elements. • Coderefs registered via elem_handler are now triggered when a node is inserted into the document, as well as during parsing. • HTML::DOM::Interface now includes the contentWindow method in the HTMLFrameElement and HTMLIFrameElement interfaces. 0.032 ----- Incompatible change: • An event_attr_handler that provides a subroutine ending with a line like ‘defined $ret and !$ret and $event->preventDefault’ will now end up triggering preventDefault in the case of an undefined $ret. This is the result of the first new feature: New features: • Distinction between event listeners and event handlers based on HTML 5; preventDefault is called automatically based on the lat- ter’s return value. • An event handler can now be an object with a call_with method. • insertAdjacentHTML and insertAdjacentElement Various bug fixes Other changes: • attr_event_listener has been renamed to event_handler. The old name is still available but will be removed in a future release. TO DO - Finish Level 2 CSS support - outerHTML/innerText? - Other DOM interfaces (the rest of level 2, and level 3) - HTML 5 stuff - Write more complete documentation - Write more tests - Finishing checking for memory leaks (run all tests under Devel::Leak::Object) INSTALLATION The easiest way to install this module is to use the CPAN module or the cpan script: [sudo] perl -MCPAN -e "install HTML::DOM" [sudo] cpan HTML::DOM Or you can use the following: perl Makefile.PL make make test [sudo] make install DEPENDENCIES This module requires perl 5.8.2 or later and the following Perl modules: - Scalar::Util 1.14 or later - Exporter 5.57 or later - HTML::TreeBuilder and HTML::Element (both part of the HTML::Tree distribution) (tested with 3.23) - URI (tested with 1.35) - LWP 1.13 or later - CSS::DOM 0.07 or later - HTML::Encoding is required if the parse_file method is to be used. - constant::lexical - Hash::Util::FieldHash::Compat DOCUMENTATION After installing, you can find documentation for this module with the perldoc command. perldoc HTML::DOM Or try using man (it's faster, in my experience): man HTML::DOM COPYRIGHT AND LICENCE Copyright (C) 2007-9 Father Chrysostomos This program is free software; you may redistribute it and/or modify it under the same terms as perl.