SEARCH
NEW RPMS
DIRECTORIES
ABOUT
FAQ
VARIOUS
BLOG

BotDetect - Real-Time Bot Detection API
 
 

MAN page from Mandrake Other perl-XML-Grove-0.05-1.i386.rpm

lib::XML::Grove::Visitor

Section: User Contributed Perl Documentation (3)
Updated: perl 5.004, patch 04
Index 

NAME

XML::Grove::Visitor - add visitor/callback methods to XML objects 

SYNOPSIS

 use XML::Grove::Visitor;
 @results = $xml_object->accept ($visitor, ...); @results = $xml_object->accept_name ($visitor, ...); @results = $xml_object->children_accept ($visitor, ...); @results = $xml_object->children_accept_name ($visitor, ...); @results = $element->attr_accept ($attr, $visitor, ...);
 

DESCRIPTION

XML::Grove::Visitor adds visitor methods (callbacks) to XML objectsand their iterators. A ``visitor'' is a class (a package) that hasmethods (subs) corresponding to the objects in the classes beingvisited. You use the visitor methods by creating an instance of yourvisitor class, and then calling `accept($my_visitor)' on thetop-most object you want to visit, that object will in turn call yourvisitor back with `visit_OBJECT', where OBJECT is the type ofobject.

There are several forms of `accept'. Simply calling `accept'calls your package back using the object type of the object you arevisiting. Calling `accept_name' on an element object calls youback with `visit_name_NAME' where NAME is the tag name of theelement, on all other objects it's as if you called `accept'.

All of the forms of `accept' return a concatenated list of theresult of all `visit' methods.

`children_accept' calls `accept' on each of the children of theelement. This is generally used in element callbacks to recurse downinto the element's children, you don't need to get the element'scontents and call `accept' on each item. `children_accept_name'does the same but calling `accept_name' on each of the children.`attr_accept' calls `accept' on each of the objects in the namedattribute.

If the child object you are visiting is a Perl scalar, you will becalled back with `visit_scalar'. The complete list of callbacksdefined by XML::Grove::Visitor are:

    visit_grove    visit_element    visit_entity    visit_pi    visit_comment    visit_scalar
When using `accept' methods with an iterator, the child objects youget called back with will also be iterators, including`visit_scalar'.

See also the examples `visitor.pl' and `my-html.pl'. 

HMM

These are random ideas that haven't been implemented yet:
Some people like their subs a little simpler, i.e. drop the`visit_'. In SGML::Grove, tag names were called back with the SGMLequivalent, `visit_gi_NAME' (generic identifier). Both of thesecould possibly be made into options.
Several objects fall into subclasses, or you may want to be able tosubclass a visited object and still be able to tell the difference.In SGML::Grove I had used the package name in the callback(`visit_SGML_Element') instead of a generic name(`visit_element'). The idea here would be to try calling`visit_PACKAGE' with the most specific class first, then trysuperclasses, and lastly to try the generic.
 

AUTHOR

Ken MacLeod, kenAATTbitsko.slc.ut.us 

SEE ALSO

perl(1), XML::Parser(3), XML::Parser::Grove(3).

Extensible Markup Language (XML) <http://www.w3c.org/XML>


 

Index

NAME
SYNOPSIS
DESCRIPTION
HMM
AUTHOR
SEE ALSO

This document was created byman2html,using the manual pages.
 
ICM Bot detect detector