perlquestion
rogue90
I wrote a pretty simple script using xml::parser to parse data into an array. The test data I was using was not well formed, but well formed enough that all I had to do was add a root node. It worked. I get a bigger chunk of test data and what do you know, their are ampersands all over it. Very not well formed.
Is there a way to process the data as it is getting fed into the parser on the fly so I could replace with entities? I would like to avoid creating a temp file as it is rather large.
My code... minus the subs
<code>
#!/usr/bin/perl
use strict;
use XML::Parser;
my $xmlfile = shift;
die "Cannot find file \"$xmlfile\""
unless -f $xmlfile;
my $count = 0;
my $tag = "";
my $encode;
my $parser = new XML::Parser;
$parser->setHandlers( Start => \&startElement,
End => \&endElement,
Char => \&characterData,
Default => \&default);
$parser->parsefile($xmlfile);
</code>