# phpman > man > XML::PatAct::Amsterdam(3pm)

## NAME
    [XML::PatAct::Amsterdam](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3APatAct%3A%3AAmsterdam/markdown) - An action module for simplistic style-sheets

## SYNOPSIS
     use [XML::PatAct::Amsterdam](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3APatAct%3A%3AAmsterdam/markdown);

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

     my $matcher = [XML::PatAct::Amsterdam](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3APatAct%3A%3AAmsterdam/markdown)->new( I<OPTIONS> );

## DESCRIPTION
    [XML::PatAct::Amsterdam](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3APatAct%3A%3AAmsterdam/markdown) is a PerlSAX handler for applying pattern-action lists to XML parses or
    trees. [XML::PatAct::Amsterdam](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3APatAct%3A%3AAmsterdam/markdown) applies a very simple style sheet to an instance and outputs the
    result. Amsterdam gets it's name from the Amsterdam SGML Parser (ASP) which inspired this
    module.

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

    New [XML::PatAct::Amsterdam](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3APatAct%3A%3AAmsterdam/markdown) 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 *OPTIONS* 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 XML element. The Before and After strings may contain
        attribute names enclosed in square brackets (`"["' *NAME* `"]"'), these are replaced with
        the value of the attribute with that name. The special *NAME* `"_element"' will be replaced
        with the element's name.

    Matcher
        An instance of the pattern or query matching module.

    Output
        An [IO::Handle](https://www.chedong.com/phpMan.php/perldoc/IO%3A%3AHandle/markdown) or one of it's subclasses (such as [IO::File](https://www.chedong.com/phpMan.php/perldoc/IO%3A%3AFile/markdown)), 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 `"parse()"' method of the PerlSAX event
        generator.

## AUTHOR
    Ken MacLeod, <ken@bitsko.slc.ut.us>

## SEE ALSO
### perl

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

