SYNOPSIS

 use XML::Grove::Path;

 # Using at_path method on XML::Grove::Document or XML::Grove::Element:
 $xml_obj = $grove_object->at_path("/some/path");

 # Using an XML::Grove::Path instance:
 $pather = XML::Grove::Path->new();
 $xml_obj = $pather->at_path($grove_object);

DESCRIPTION

\*(C`XML::Grove::Path\*(C' returns \s-1XML\s0 objects located at paths. Paths are strings of element names or \s-1XML\s0 object types separated by slash (\*(L"/\*(R") characters. Paths must always start at the grove object passed to `\*(C`at_path()\*(C''. \*(C`XML::Grove::Path\*(C' is not XPath, but it should become obsolete when an XPath implementation is available.

Paths are like URLs

/html/body/ul/li[4] /html/body/#pi[2]

The path segments can be element names or object types, the objects types are named using:

#element #pi #comment #text #cdata #any

The `\*(C`#any\*(C'' object type matches any type of object, it is essentially an index into the contents of the parent object.

The `\*(C`#text\*(C'' object type treats text objects as if they are not normalized. Two consecutive text objects are separate text objects.

AUTHOR

Ken MacLeod, [email protected]

RELATED TO XML::Grove::Path…

perl\|(1), XML::Grove\|(3)

Extensible Markup Language (\s-1XML\s0) <http://www.w3c.org/XML>