#!/usr/bin/perl -w -I. ## ## Copyright (c) 2002-2006 Rainer Hillebrand, rainer.hillebrand@webcab.de. ## All rights reserved. ## This program is free software; you can redistribute it ## and/or modify it under the same terms as Perl itself. ## ## Version 0.03, 2006-06-07 ## ## This Perl script prints out the whole content of the WURFL XML file. use WURFLLite; my $input = 'wurfl.xml'; open(IN,"<$input") || die("Can't open input file $input: $!."); my $content; while () { $content .= $_; } print STDERR "$input was read.\n"; my %result; parseXML(\%result, \$content); print STDERR "$input was parsed.\n"; print "Version:\n\n", " WURFL version: $result{'versions'}->{'ver'}\n", " Last updated: $result{'versions'}->{'last_updated'}\n", " Official URL: $result{'versions'}->{'official_url'}\n", " Statement: $result{'versions'}->{'statement'}\n"; foreach my $element ('maintainers', 'authors', 'contributors') { print " $element:\n"; foreach my $number (sort {lc($a) cmp lc($b)} keys (%{$result{'versions'}->{$element}})) { print " $number:\n"; foreach my $capability (sort {lc($a) cmp lc($b)} keys (%{$result{'versions'}->{$element}->{$number}})) { print " $capability: ", $result{'versions'}->{$element}->{$number}->{$capability}, "\n"; } } } print "\nDevices:\n"; foreach my $device_id (sort {lc($a) cmp lc($b)} keys (%{$result{'devices'}})) { print "\n $device_id\n", " Attributes:\n"; foreach my $attribute (sort {lc($a) cmp lc($b)} keys (%{$result{'devices'}->{$device_id}->{'attributes'}})) { print " $attribute: ", $result{'devices'}->{$device_id}->{'attributes'}->{$attribute}, "\n"; } print " Capabilities:\n" if defined %{$result{'devices'}->{$device_id}->{'capabilities'}}; foreach my $group (sort {lc($a) cmp lc($b)} keys (%{$result{'devices'}->{$device_id}->{'capabilities'}})) { print " $group:\n"; foreach my $capability (sort {lc($a) cmp lc($b)} keys (%{$result{'devices'}->{$device_id}->{'capabilities'}->{$group}})) { print " $capability: ", $result{'devices'}->{$device_id}->{'capabilities'}->{$group}->{$capability}, "\n"; } } }