OurNet-Query
view release on metacpan or search on metacpan
# Subroutine parse($self, $file)
# ------------------------------
sub parse {
my $self = shift;
open(local *SITEFILE, $_[0]);
if ($_[0] =~ m|\.xml$|i) { # XML descriptor
local $/;
my $content = <SITEFILE>;
my $xml_cdata_re = '(<!\[CDATA\[)?\015?\012?(.*?)\015?\012?(]]>)?';
$self->{id} = $1 if $content =~ m|<site id="(.*?)">|i;
foreach my $tag (qw/charset score expression template proc/) {
$self->{$tag} = $2 if $content =~ m|<$tag>$xml_cdata_re</$tag>|is;
}
foreach my $tag (qw/url var name info/) {
$self->{$tag}{lc($1)} = $3 while
$content =~ s|<$tag \w+="(.*?)">$xml_cdata_re</$tag>||is;
}
if ($content =~ m|<category>(.*?)</category>|i) {
$self->{category} = [ split(',', $1) ];
}
}
elsif ($_[0] =~ m|(?:.*[/\\])?(.*?)(?:\.fmt)$|i) { # Inforia Quest
$self->{id} = $1;
chomp($self->{name}{'en-us'} = <SITEFILE>);
( run in 0.583 second using v1.01-cache-2.11-cpan-454fe037f31 )