NAME

PYX::XMLNorm - Processing PYX data or file and do XML normalization.

SYNOPSIS

use PYX::XMLNorm;

my $obj = PYX::XMLNorm->new(%parameters);
$obj->parse($pyx, $out);
$obj->parse_file($input_file, $out);
$obj->parse_handler($input_file_handler, $out);

METHODS

new(%parameters)

my $obj = PYX::XMLNorm->new(%parameters);

Constructor.

  • flush_stack

    Flush stack on finalization.

    Default value is 0.

  • output_handler

    Output handler.

    Default value is \*STDOUT.

  • rules

    XML normalization rules. Parameter is required. Format of rules is: Outer element => list of inner elements. e.g.

    {
            'middle' => ['end'],
    },

    Outer element can be '*'.

    Default value is {}.

Returns instance of object.

parse($pyx[, $out])

$obj->parse($pyx, $out);

Parse PYX text or array of PYX text. If $out not present, use 'output_handler'.

Returns undef.

parse_file($input_file[, $out])

$obj->parse_file($input_file, $out);

Parse file with PYX data. If $out not present, use 'output_handler'.

Returns undef.

parse_handler($input_file_handler[, $out])

$obj->parse_handler($input_file_handler, $out);

Parse PYX handler. If $out not present, use 'output_handler'.

Returns undef.

ERRORS

new():
        Cannot exist XML normalization rules.
        From Class::Utils::set_params():
                Unknown parameter '%s'.

EXAMPLE

use strict;
use warnings;

use PYX::XMLNorm;

# Example data.
my $pyx = <<'END';
(begin
(middle
(end
-data
)middle
)begin
END

# Object.
my $obj = PYX::XMLNorm->new(
        'rules' => {
                'middle' => ['end'],
        },
);

# Nomrmalize..
$obj->parse($pyx);

# Output:
# (begin
# (middle
# (end
# -data
# )end
# )middle
# )begin

DEPENDENCIES

Class::Utils, Error::Pure, PYX, PYX::Parser.

SEE ALSO

PYX

A perl module for PYX handling.

Task::PYX

Install the PYX modules.

REPOSITORY

https://github.com/michal-josef-spacek/PYX-XMLNorm

AUTHOR

Michal Josef Špaček skim@cpan.org.

LICENSE AND COPYRIGHT

© 2011-2023 Michal Josef Špaček

BSD 2-Clause License

VERSION

0.05