man > Data::Grove::Visitor(3pm)

πŸ“› NAME

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

πŸš€ Quick Reference

Use CaseCommandDescription
Visit an object and invoke callback$object->accept($visitor)πŸ’‘ Calls visit_OBJECT on the visitor for the visited object type
Visit an element by tag name$object->accept_name($visitor)πŸ’‘ Calls visit_name_NAME on element objects; behaves like accept for others
Recurse into children$object->children_accept($visitor)πŸ’‘ Calls accept on each child of the element
Recurse into children by name$object->children_accept_name($visitor)πŸ’‘ Calls accept_name on each child
Visit attributes$object->attr_accept($visitor, $attr_name)πŸ’‘ Calls accept on each object in the named attribute

πŸ“– SYNOPSIS

use Data::Grove::Visitor;

@results = $object->accept ($visitor, ...);
@results = $object->accept_name ($visitor, ...);
@results = $object->children_accept ($visitor, ...);
@results = $object->children_accept_name ($visitor, ...);

πŸ“ DESCRIPTION

Data::Grove::Visitor adds visitor methods (callbacks) to Data::Grove objects. A β€œvisitor” is a class (a package) you write that has methods (subs) corresponding to the objects in the classes being visited. You use the visitor methods by creating an instance of your visitor class, and then calling accept($my_visitor) on the top-most object you want to visit, that object will in turn call your visitor back with visit_OBJECT, where OBJECT is the type of object.

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

All of the forms of accept return a concatenated list of the result of all visit methods.

children_accept calls accept on each of the children of the element. This is generally used in element callbacks to recurse down into the element's children, you don't need to get the element's contents 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 named attribute.

Refer to the documentation of the classes you are visiting (XML::Grove, etc.) for the type names (element, document, etc.) of the objects it implements.

πŸ”– RESERVED NAMES

The hash keys Contents and Name are used to indicate objects with children (for children_accept) and named objects (for accept_name).

πŸ“Œ NOTES

These are random ideas that haven't been implemented yet:

✍️ AUTHOR

Ken MacLeod, ken AT bitsko.us

πŸ”— SEE ALSO

perl(1), Data::Grove

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


perl v5.32.0 2020-12-28 Data::Grove::Visitor(3pm)

Data::Grove::Visitor(3pm)
πŸ“› NAME πŸš€ Quick Reference πŸ“– SYNOPSIS πŸ“ DESCRIPTION πŸ”– RESERVED NAMES πŸ“Œ NOTES ✍️ AUTHOR πŸ”— SEE ALSO

Generated by phpman v4.10.0-7-g98e9fd5 · Markdown · JSON · MCP Author: Che Dong Under GNU General Public License
2026-09-12 07:18 @2600:1f28:365:80b0:6f72:a904:73b0:e266
CrawledBy CCBot/2.0 (https://commoncrawl.org/faq/)
Valid XHTML 1.0 Transitional!Valid CSS!