A xmltv file with a quality setting like
<video>
<quality>HDTV</quality>
<aspect>16:9</aspect>
</video>
read in with XMLTV::parsefile($filename);
will produce
'video' => {
'aspect' => '16:9'
},
i.e. The quality subelement has been lost
This appears to be caused by
XMLTV.pm
$Handlers{video}->[0] = sub ( $ ) {
my $node = shift;
my %r;
foreach (get_subelements($node)) {
my $name = get_name($_);
my $value = get_text($_);
if ($name eq 'present') {
warn "'present' seen twice" if defined $r{present};
$r{present} = decode_boolean($value);
}
elsif ($name eq 'colour') {
warn "'colour' seen twice" if defined $r{colour};
$r{colour} = decode_boolean($value);
}
elsif ($name eq 'aspect') {
warn "'aspect' seen twice" if defined $r{aspect};
$value =~ /^\d+:\d+$/ or warn "bad aspect ratio: $value";
$r{aspect} = $value;
}
}
return \%r;
};
Adding a quality elsif into this fixes it
$Handlers{video}->[0] = sub ( $ ) {
my $node = shift;
my %r;
foreach (get_subelements($node)) {
my $name = get_name($_);
my $value = get_text($_);
if ($name eq 'present') {
warn "'present' seen twice" if defined $r{present};
$r{present} = decode_boolean($value);
}
elsif ($name eq 'colour') {
warn "'colour' seen twice" if defined $r{colour};
$r{colour} = decode_boolean($value);
}
elsif ($name eq 'aspect') {
warn "'aspect' seen twice" if defined $r{aspect};
$value =~ /^\d+:\d+$/ or warn "bad aspect ratio: $value";
$r{aspect} = $value;
}
elsif ($name eq 'quality') {
warn "'quality' seen twice" if defined $r{quality};
$r{quality} = $value;
}
}
return \%r;
};
Logged In: NO
My bad... when I added quality to the DTD I missed it xmltv.pm.
Committed to CVS.
Robert
Logged In: YES
user_id=270469
Originator: NO
forgot to log in!