http://qs1969.pair.com?node_id=478722

rogue90 has asked for the wisdom of the Perl Monks concerning the following question:

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
#!/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);