FreeBSD Manual Pages
DOMHandler(3) User Contributed Perl Documentation DOMHandler(3) NAME DOMHandler - Implements a call-back interface to DOM. SYNOPSIS use DOMHandler; use XML::LibXML; $p = new XML::LibXML; $doc = $p->parse_file( 'data.xml' ); $dh = new DOMHandler( handler_package => new testhandler ); $dh->traverse( $doc ); package testhandler; sub new { return bless {}; } sub A { my( $self, $agent, $node ) = @_; my $par = $node->parentNode->nodeName; print "I'm in an A element and my parent is $par.\n"; } sub generic_element { my( $self, $agent, $node ) = @_; my $name = $node->nodeName; print "I'm in an element named '$name'.\n"; } sub generic_text { print "Here's some text.\n"; } sub generic_PI { print "Here's a processing instruction.\n"; } sub generic_CDATA { print "Here's a CDATA Section.\n"; } DESCRIPTION This module creates a layer on top of DOM that allows you to program in a "push" style rather than "pull". Once the document has been parsed and you have a DOM object, you can call on the DOMHandler's traverse() method to apply a set of call-back routines to all the nodes in a tree. You supply the routines in a handler package when initializing the DOMHandler. In your handler package, the names of routines determine which will be called for a given node. There are routines for node types, named "generic_" plus the node type. For elements, you can name routines after the element name and these will only be called for that type of element. A list of supported handlers follows: else_generic_node() Applied only to nodes that have not been handled by another routine. generic_CDATA() Applied to CDATA sections. generic_comment() Applied to XML comments. generic_doctype() Applied to DOCTYPE declarations. generic_element() Applied to all elements. generic_node() Applied to all nodes. generic_PI() Processing instruction generic_text() Applied to text nodes. A handler routine takes three arguments: the $self reference, a reference to the DOMHandler object, and a reference to a node in the document being traversed. You can use DOM routines on that node to do any processing you want. At the moment, this module only supports XML::LibXML documents. IMPORTANT NOTE: Some DOM operations may cause unwanted results. For example, if you delete the current node's parent, the program will likely crash. METHODS traverse( $doc ) Visits each node in a document, in order, applying the appropriate handler routines. AUTHOR Erik Ray (eray@oreilly.com), Production Tools Dept., O'Reilly and Associates Inc. COPYRIGHT Copyright (c) 2002 Erik Ray and O'Reilly & Associates. POD ERRORS Hey! The above document had some coding errors, which are explained below: Around line 328: =back doesn't take any parameters, but you said =back 4 perl v5.32.0 2002-08-20 DOMHandler(3)
NAME | SYNOPSIS | DESCRIPTION | METHODS | AUTHOR | COPYRIGHT | POD ERRORS
Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=XML::DOMHandler&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>