changeset 58:119f0cef6498

Work on XML output support (not finished yet.)
author Matti Hamalainen <ccr@tnsp.org>
date Wed, 24 Oct 2012 01:30:37 +0300
parents 93c87f42c803
children aa201ddd33dd
files parsedata.pl
diffstat 1 files changed, 34 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/parsedata.pl	Wed Oct 24 01:18:45 2012 +0300
+++ b/parsedata.pl	Wed Oct 24 01:30:37 2012 +0300
@@ -455,8 +455,42 @@
   "  <maxdays>$maxDays</maxdays>\n".
   "  <firsthour>$firstHour</firsthour>\n".
   "  <lasthour>$lastHour</lasthour>\n".
+  "  <totalhours>$totalHours</totalhours>\n".
   " </class>\n";
 
+  print " <hours>\n";
+  foreach my $chour (@$hourTimes) {
+    print "  <hour><start>".$$chour{"start"}."</start><end>".$$chour{"end"}."</end></hour>\n";
+  }
+  print " </hours>\n\n";
+
+  print " <classes>\n";
+  foreach my $cid (sort { $a <=> $b } keys %{$hourDefs}) {
+    print "  <class id=\"$cid\" ";
+    foreach my $key (keys %{$$hourDefs{$cid}}) {
+      my $a = $$hourDefs{$cid}{$key};
+      if (ref($a) eq "ARRAY") {
+        print "<$key>".join("", map { "\"".escape($_)."\""; } @$a)."</$key>";
+      }
+      elsif ($a =~ /^\d+$/) {
+        print "$key=\"".$a."\" ";
+      } else {
+        print "$key=\"".escape($a)."\" ";
+      }
+    }
+    print " </class>\n";
+  }
+  print " </classes>\n\n";
+
+  print " <days>\n";
+  for (my $y = 0; $y < $maxDays; $y++)
+  {
+    if (defined($$hourTable{$y}))
+    {
+      print "  <day id=\"$y\">".join("", map { "<class>".$_."</class>" } @{$$hourTable{$y}})."</day>\n";
+    }
+  }
+  print " </days>\n";
 
   print "</timetable>\n";
 }