Can someone help me parse XML? - Challenge
| From: | Jeff Lewis | Date: | Mon, 17 Sep 2001 14:42:17 +0000 |
| Subject: | Can someone help me parse XML? - Challenge | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-67607@lists.php.net to get a copy of this message | ||
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 :(