package Opals::SIF::ObjectDataParser::RoomInfoParser;

# Version number
$VERSION   = 0.01;


use warnings;
use strict;
use XML::Simple;
use XML::XPath;
use Opals::SIF::Specs;

sub new {
    my ($class) = @_;
    my $self={};
    bless $self, $class;
    return $self;
}

#################################################################
sub parse{
    my($self,$xml,$sifVersion)=@_;
    my $stdInfo={};
    my $xmlObj =XML::XPath->new(xml=>$xml);
    my ($node) =$xmlObj->findnodes("/RoomInfo");
    my $spec =ROOMINFO->{$sifVersion};
    foreach my $fname(keys %$spec){
        if($xmlObj->exists($spec->{$fname})){
            if($fname =~ m/List$/){
                foreach my $n ($xmlObj->findnodes($spec->{$fname})){
                    push @{$stdInfo->{$fname}},XML::XPath::XMLParser::as_string($n);
                }
            }
            else{
                $stdInfo->{$fname}=$xmlObj->getNodeText($spec->{$fname});
            }
        }
    }
    return $stdInfo;
}
#
#################################################################
1;

