SYNOPSIS

 use XML::PatAct::Amsterdam;

 my $patterns = [ PATTERN => { Before => 'before',
                               After => 'after' },
                  ... ];

 my $matcher = XML::PatAct::Amsterdam->new( I<OPTIONS> );

DESCRIPTION

XML::PatAct::Amsterdam is a PerlSAX handler for applying pattern-action lists to \s-1XML\s0 parses or trees. XML::PatAct::Amsterdam applies a very simple style sheet to an instance and outputs the result. Amsterdam gets it's name from the Amsterdam \s-1SGML\s0 Parser (\s-1ASP\s0) which inspired this module.

\s-1CAUTION:\s0 Amsterdam is a very simple style module, you will run into it's limitations quickly with even moderately complex \s-1XML\s0 instances, be aware of and prepared to switch to more complete style modules.

New XML::PatAct::Amsterdam instances are creating by calling `new()'. Parameters can be passed as a list of key, value pairs or a hash. A Patterns and Matcher options are required. The following \s-1OPTIONS\s0 are supported:

Patterns

The pattern-action list to apply. The list is an anonymous array of pattern, action pairs. Each action in the list contains either or both a Before and an After string to copy to the output before and after processing an \s-1XML\s0 element. The Before and After strings may contain attribute names enclosed in square brackets (`\*(C`[\*(C'' \s-1NAME\s0 `\*(C`]\*(C''), these are replaced with the value of the attribute with that name. The special \s-1NAME\s0 `\*(C`_element\*(C'' will be replaced with the element's name.

Matcher

An instance of the pattern or query matching module.

Output

An IO::Handle or one of it's subclasses (such as IO::File), if this parameter is not present and the AsString option is not used, the module will write to standard output.

AsString

Return the generated output as a string from the `\*(C`parse()\*(C'' method of the PerlSAX event generator.

AUTHOR

Ken MacLeod, [email protected]

RELATED TO XML::PatAct::Amsterdam…

perl\|(1)

``Using PatAct Modules'' and ``Creating PatAct Modules'' in libxml-perl.