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 :(

Reply via email to