I have an XML file that I need to parse. I had the base of a perl script written but
wasn't completely functioning and was hoping someone could give me a hand with making
it parse and do what it's supposed to but in PHP. The perl file looked like this:
#!/usr/bin/perl
use CGI::Carp qw(fatalsToBrowser);
$counter = 0;
open (RESUME, "resumes.xml");
@resume = <RESUME>;
close (RESUME);
$resume = join('',@resume);
while ($resume =~ /<resume>(.*?)<\/resume>/sg) {
$counter += 1;
$myresume = $1;
$myresume =~ /<resumeText>(.*)<\/resumeText>/s;
$finalresume = $1;
$finalresume =~ s/\s+$//g;
$finalresume =~ s/^\s+//g;
$finalresume =~ s/\n/&&/g;
$myresume =~ /<resumeHolderEntry(.*?)(\/)?>/s;
$resumeholderentry = $1;
parse($resumeholderentry,'resumeHolderEntry');
$myresume =~ /<resumeEntry(.*?)(\/)?>/s;
$resumeentry = $1;
parse($resumeentry,'resumeEntry');
}
exit;
sub parse {
my ($what,$header) = @_;
$what =~ s/\n//g;
$what =~ s/^\s+//g;
$what =~ s/\s+$//g;
$what =~ s/\s{2}//g;
$what =~ s/\"(.*?)\"/\"$1\"\n/g;
@pairs = split(/\n/, $what);
foreach $pair (@pairs) {
($name,$value) = split(/=/,$pair);
$name =~ s/^\s+//g;
$name =~ s/\s+$//g;
$value =~ s/\"//g;
$value =~ s/^\s+//g;
$value =~ s/\s+$//g;
#push(@temp, $name.'='.$value);
push(@temp, $value);
}
$temp = join('|', @temp);
if ($header eq "resumeEntry") { $temp .= "\|$finalresume"; }
open (FILE, ">>$header.txt") or die "Can't write to $header: $!";
print FILE "$counter\|$temp\n";
close (FILE);
}
Now the XML file I can send someone but this is something I should have done from the
start (use PHP) but now I am out of time and scrambling :(