XML-STX
view release on metacpan or search on metacpan
STX/Writer.pm view on Meta::CPAN
local *STDOUT = $self->{RES} if exists $self->{RES};
my $out= "<$element->{Name}";
foreach (keys %{$element->{Attributes}}) {
$out .= " $element->{Attributes}->{$_}->{Name}=\"$element->{Attributes}->{$_}->{Value}\"";
}
foreach (keys %{$self->{_start_prefmap}}) {
my $attName = $_ ? "xmlns:$_" : 'xmlns';
$out .= " $attName=\"$self->{_start_prefmap}->{$_}\"";
}
print "$out>";
$self->{_start_prefmap} = {};
}
sub end_element {
my ($self, $element) = @_;
local *STDOUT = $self->{RES} if exists $self->{RES};
print "</$element->{Name}>";
}
sub characters {
my ($self, $characters) = @_;
local *STDOUT = $self->{RES} if exists $self->{RES};
unless ($self->{CDATA}) {
$characters->{Data} =~ s/&/&/g;
$characters->{Data} =~ s/</</g;
$characters->{Data} =~ s/>/>/g;
}
print $characters->{Data};
}
sub processing_instruction {
my ($self, $pi) = @_;
local *STDOUT = $self->{RES} if exists $self->{RES};
print "<?$pi->{Target} $pi->{Data}?>";
}
sub start_prefix_mapping {
my ($self, $map) = @_;
$self->{_start_prefmap}->{$map->{Prefix}} = $map->{NamespaceURI};
}
sub end_prefix_mapping {
my ($self, $map) = @_;
}
# lexical --------------------------------------------------
sub start_cdata {
my $self = shift;
local *STDOUT = $self->{RES} if exists $self->{RES};
$self->{CDATA} = 1;
print '<![CDATA[';
}
sub end_cdata {
my $self = shift;
local *STDOUT = $self->{RES} if exists $self->{RES};
$self->{CDATA} = 0;
print ']]>';
}
sub comment {
my ($self, $comment) = @_;
local *STDOUT = $self->{RES} if exists $self->{RES};
print "<!-- $comment->{Data} -->";
}
sub start_dtd {
my ($self, $options) = @_;
}
sub end_dtd {
my ($self, $options) = @_;
}
# error --------------------------------------------------
sub warning {
my ($self, $exception) = @_;
print STDERR "Warning: $exception->{Message}\n";
}
sub error {
my ($self, $exception) = @_;
print STDERR "Error: $exception->{Message}\n";
}
sub fatal_error {
my ($self, $exception) = @_;
print STDERR "Fatal Error: $exception->{Message}\n";
}
1;
__END__
=head1 NAME
XML::STX::Writer - a lightweight fallback SAX2 writer
=head1 AUTHOR
Petr Cimprich (Ginger Alliance), petr@gingerall.cz
=head1 SEE ALSO
XML::STX, perl(1).
( run in 2.087 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )