XML-Writer-Lazy

 view release on metacpan or  search on metacpan

README.pod  view on Meta::CPAN

        else {
            push( @attributes, [ $attr, $attributes{$attr} ] );
        }
    }

    @attributes = map {@$_} sort { $a->[0] cmp $b->[0] } @attributes;
    $writer->startTag( $element->{'Name'}, @attributes );
    return;
}

sub end_element {
    my ( $self, $element ) = @_;
    $writer->endTag( $element->{'Name'} );
    return;
}

sub characters {
    my ( $self, $characters ) = @_;
    $writer->characters( $characters->{'Data'} );
    return;
}

sub processing_instruction {
    my ( $self, $pi ) = @_;
    $writer->pi( $pi->{'Target'}, $pi->{'Data'} );
    return;
}

sub comment {
    my ( $self, $comment ) = @_;
    $comment->{'Data'} ||= '';
    $comment->{'Data'} =~ s/^ //;
    $comment->{'Data'} =~ s/ $//;
    $writer->comment( $comment->{'Data'} );
    return;
}

sub start_dtd {
    my ( $self, $dtd ) = @_;
    $writer->doctype( $dtd->{'Name'}, $dtd->{'PublicId'},
        $dtd->{'SystemId'} );
    return;
}

sub start_prefix_mapping {
    my ( $self, $prefix_mapping ) = @_;
    $writer->addPrefix( $prefix_mapping->{'NamespaceURI'},
        $prefix_mapping->{'Prefix'} );
    return;
}

# Allegedly passes through some kind of locator object, but appears
# to essentially be a no-op? ¯\_(ツ)_/¯
sub set_document_locator {
    my $self = shift;
    my $data = shift;
    return;
}

# No work needed, as the insides will already be magically quoted
sub start_cdata { return; }
sub end_cdata   { return; }

sub not_implemented {
    my ($event) = @_;
    return <<"MSG";
The XML passed to 'lazily()' triggered a `$event` SAX event,
but XML::Writer::Lazy doesn't yet handle those. You can either simplify your
input XML or alternatively you could monkey-patch `XML::Writer::Lazy::Handler`
to add a `$event()` handler method to it.
MSG
}

sub skipped_entity {
    my $self = shift;
    my $data = shift;
    return croak( not_implemented('skipped_entity') );
}

sub entity_reference {
    my $self = shift;
    my $data = shift;
    return croak( not_implemented('entity_reference') );
}

sub notation_decl {
    my $self = shift;
    my $data = shift;
    return croak( not_implemented('notation_decl') );
}

sub unparsed_entity_decl {
    my $self = shift;
    my $data = shift;
    return croak( not_implemented('unparsed_entity_decl') );
}

sub element_decl {
    my $self = shift;
    my $data = shift;
    return croak( not_implemented('element_decl') );
}

sub attlist_decl {
    my $self = shift;
    my $data = shift;
    return croak( not_implemented('attlist_decl') );
}

sub doctype_decl {
    my $self = shift;
    my $data = shift;
    return croak( not_implemented('doctype_decl') );
}

sub entity_decl {
    my $self = shift;
    my $data = shift;
    return croak( not_implemented('entity_decl') );
}

sub attribute_decl {



( run in 3.775 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )