summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2011-09-11 20:25:17 +0200
committerDaniel Friesel <derf@finalrewind.org>2011-09-11 20:25:17 +0200
commit0640f90da6e16a23fc87dd4acb32d1d3604b1267 (patch)
treef60861c94016a813c86b693443fa543a278bd575
parent50a12ddf7f67f7a7e383fe0e1962e41c24afce02 (diff)
Add actual tests
-rw-r--r--lib/Travel/Status/DE/VRR.pm15
-rw-r--r--t/20-vrr.t29
-rw-r--r--t/in/essen_bp.html762
3 files changed, 805 insertions, 1 deletions
diff --git a/lib/Travel/Status/DE/VRR.pm b/lib/Travel/Status/DE/VRR.pm
index e16136f..47b3b76 100644
--- a/lib/Travel/Status/DE/VRR.pm
+++ b/lib/Travel/Status/DE/VRR.pm
@@ -98,6 +98,21 @@ sub new {
return $self;
}
+sub new_from_html {
+ my ( $class, %opt ) = @_;
+
+ my $self = { html => $opt{html}, };
+
+ $self->{tree} = XML::LibXML->load_html(
+ string => $self->{html},
+ recover => 2,
+ suppress_errors => 1,
+ suppress_warnings => 1,
+ );
+
+ return bless( $self, $class );
+}
+
sub errstr {
my ($self) = @_;
diff --git a/t/20-vrr.t b/t/20-vrr.t
index 5b5b499..da2a1ba 100644
--- a/t/20-vrr.t
+++ b/t/20-vrr.t
@@ -3,9 +3,36 @@ use strict;
use warnings;
use 5.010;
-use Test::More tests => 2;
+use File::Slurp qw(slurp);
+use Test::More tests => 94;
BEGIN {
use_ok('Travel::Status::DE::VRR');
}
require_ok('Travel::Status::DE::VRR');
+
+my $html = slurp('t/in/essen_bp.html');
+
+my $status = Travel::Status::DE::VRR->new_from_html(html => $html);
+
+isa_ok($status, 'Travel::Status::DE::VRR');
+can_ok($status, qw(errstr results));
+
+my @results = $status->results;
+
+for my $result (@results) {
+ isa_ok($result, 'Travel::Status::DE::VRR::Result');
+ can_ok($result, qw(destination info line time platform));
+}
+
+is($results[0]->destination, 'Essen Wertstr.', 'first result: destination ok');
+is($results[0]->info, q{}, 'first result: no info');
+is($results[0]->line, '103', 'first result: line ok');
+is($results[0]->time, '20:19', 'first result: time ok');
+is($results[0]->platform, 'Bstg. 1', 'first result: platform ok');
+
+is($results[-1]->destination, 'Essen Germaniaplatz', 'last result: destination ok');
+is($results[-1]->info, q{}, 'last result: no info');
+is($results[-1]->line, '101', 'last result: line ok');
+is($results[-1]->time, '21:07', 'last result: time ok');
+is($results[-1]->platform, 'Bstg. 1', 'last result: platform ok');
diff --git a/t/in/essen_bp.html b/t/in/essen_bp.html
new file mode 100644
index 0000000..f8cc826
--- /dev/null
+++ b/t/in/essen_bp.html
@@ -0,0 +1,762 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html xmlns:vrr="http://www.vrr.de/" xmlns:mdv="http://www.mentzdv.de/">
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Fahrplanauskunft</title>
+<link rel="stylesheet" type="text/css" href="css/map.css">
+<link rel="stylesheet" type="text/css" href="css/MDVMapContextMenu.css">
+<link rel="stylesheet" type="text/css" href="css/MDVMapControl.css">
+<link rel="stylesheet" type="text/css" href="css/calendar.css">
+<link rel="stylesheet" type="text/css" href="css/itpTravelService.css">
+<link rel="stylesheet" type="text/css" href="css/vrr.css"><script type="text/javascript"><!--
+
+ function attachEventListener(target, eventType, functionRef, capture) {
+ if (typeof target.addEventListener != "undefined") {
+ target.addEventListener(eventType, functionRef, capture);
+ }
+ else if (typeof target.attachEvent != "undefined") {
+ target.attachEvent("on" + eventType, functionRef);
+ }
+ else {
+ eventType = "on" + eventType;
+
+ if (typeof target[eventType] == "function") {
+ var oldListener = target[eventType];
+
+ target[eventType] = function() {
+ oldListener();
+
+ return functionRef();
+ }
+ }
+ else {
+ target[eventType] = functionRef;
+ }
+ }
+
+ return true;
+ }
+
+ function checkPwdBoxes()
+ {
+ if(document.forms[0].ppPersonNetPassword.value!=document.forms[0].ppPersonConfirmNetPassword.value || document.forms[0].ppPersonNetPassword.value=='')
+ {
+ alert('Ihre Passwortangaben sind ungültig. Bitte geben Sie zweimal dasselbe Passwort ein.');
+ document.forms[0].ppPersonNetPassword.value="";
+ document.forms[0].ppPersonConfirmNetPassword.value="";
+ return false;
+ }
+ else return true;
+ }
+
+ function concatDate()
+ {
+ var completDate;
+ completDate = document.forms[0].itdLPxx_date.value;
+ completDate = completDate + "-" + document.forms[0].itdLPxx_month.value;
+ completDate = completDate + "-" + document.forms[0].itdLPxx_year.value;
+
+ document.forms[0].filterDateValid.value=completDate;
+ }
+
+ var viaInMobilityRestrictionOptions = 'true';
+ var viaFlag = 'false';
+ var identifiedOdv = {
+ 'origin' : '',
+ 'destination' : '',
+ 'via' : '',
+ 'command' : ''
+ };
+ var sid = 'efa10.vrr.de_40963484';
+ var curLanguage = 'de';
+ var dmStop = "Haltestelle";
+ var dmPOI = "wichtiger Punkt";
+
+ var includedMeans = [];
+
+ var excludedMeans = [];
+
+
+ function checkMeans() {
+
+ var f = document.getElementsByName('jp')[0];
+
+ if (!f || sid!=='0') {
+ return true;
+ }
+
+ if (includedMeans.length >=1) {
+ for (var i=0; i < includedMeans.length; i++) {
+ if(f['inclMOT_' + includedMeans[i]]) {
+ f['inclMOT_' + includedMeans[i]].checked = false;
+ }
+ }
+ } else if (excludedMeans.length >=1) {
+ for (var j=0; j < excludedMeans.length; j++) {
+ if (f['inclMOT_' + excludedMeans[j]]) {
+ f['inclMOT_' + excludedMeans[j]].checked = false;
+ }
+ }
+ }
+ }
+
+ attachEventListener(window, 'load', checkMeans, false);
+ //--></script><script type="text/javascript" src="JavaScriptFunctions/mdv.js"></script><script type="text/javascript" src="JavaScriptFunctions/odvScript.js"></script><script type="text/javascript" src="/mdv/mdvMap/mdvMap.js"></script><link type="text/css" href="css/jquery-ui-1.8.6.custom.css" rel="stylesheet"><!--[if IE]><style>.ui-datepicker { margin-top: -150px; }</style><![endif]--><script type="text/javascript" src="JavaScriptFunctions/jquery-1.4.2.min.js"></script><script type="text/javascript" src="JavaScriptFunctions/jquery-ui-1.8.6.custom.min.js"></script><script type="text/javascript" src="JavaScriptFunctions/datepicker-de.js"></script><script type="text/javascript" src="mdvMapSettings.js"></script><script type="text/javascript" src="miniMapSettings.js"></script><script type="text/javascript" src="JavaScriptFunctions/mdvMapHandler.js"></script><script type="text/javascript"><!--
+ var bCreateMapRequest = false;
+ --></script><script type="text/javascript"><!--
+ /* language of the map */
+ var mapLanguage = 'de';
+ var odv = new Array();
+ --></script><script>function initMdvMapConfig() {var usages = new Array("origin", "destination", "via", "dm", "stt");for(var i=0; i<usages.length; i++) {var usage = usages[i];mdvMapConfigs[usage] = mdvMapConfig.clone();mdvMapConfigs[usage].add("serverURL", "http://efa.vrr.de/maps/nrw/");mdvMapConfigs[usage].add("efaURL", "../lite/XSLT_COORD_REQUEST");mdvMapConfigs[usage].add("transparentImg", "images/transparent.gif");mdvMapConfigs[usage].add("defaultScale", "2");mdvMapConfigs[usage].add("toolTimeOut", "20");mdvMapConfigs[usage].add("zoomOnDoubleClick", "true");mdvMapConfigs[usage].add("useMagnifyGlass", "true");mdvMapConfigs[usage].add("cursorMove", "images/grabbing.cur");mdvMapConfigs[usage].add("poiArea", "true");mdvMapConfigs[usage].add("poiPoint", "true");mdvMapConfigs[usage].add("language", "de");mdvMapConfigs[usage].add("imagePath", "images/mdvMap/");mdvMapConfigs[usage].add("xCenterReal", "3368363");mdvMapConfigs[usage].add("yCenterReal", "450530");mdvMapConfigs[usage].add("mapName", "NAV3");mdvMapConfigs[usage].add("network", "NRW");mdvMapConfigs[usage].add("useBubbleForEFAInfo", "true");mdvMapConfigs[usage].add("info.stop.size.width", "250");mdvMapConfigs[usage].add("info.stop.size.height", "200");mdvMapConfigs[usage].add("info.poi.size.width", "250");mdvMapConfigs[usage].add("info.poi.size.height", "120");mdvMapConfigs[usage].add("useBubbleOverflowForEFAInfo", "true");mdvMapConfigs[usage].add("block", "100");mdvMapConfigs[usage].add("language", "de");mdvMiniMapConfigs[usage] = mdvMiniMapConfig.clone();mdvMiniMapConfigs[usage].add("serverURL", "http://efa.vrr.de/maps/nrw/");mdvMiniMapConfigs[usage].add("efaURL", "../lite/XSLT_COORD_REQUEST");mdvMiniMapConfigs[usage].add("transparentImg", "images/transparent.gif");mdvMiniMapConfigs[usage].add("defaultScale", "2");mdvMiniMapConfigs[usage].add("toolTimeOut", "20");mdvMiniMapConfigs[usage].add("zoomOnDoubleClick", "true");mdvMiniMapConfigs[usage].add("useMagnifyGlass", "true");mdvMiniMapConfigs[usage].add("cursorMove", "images/grabbing.cur");mdvMiniMapConfigs[usage].add("language", "de");mdvMiniMapConfigs[usage].add("imagePath", "images/mdvMap/");mdvMiniMapConfigs[usage].add("xCenterReal", "3368363");mdvMiniMapConfigs[usage].add("yCenterReal", "450530");mdvMiniMapConfigs[usage].add("mapName", "NAV3");mdvMiniMapConfigs[usage].add("network", "NRW");mdvMiniMapConfigs[usage].add("block", "100");mdvMiniMapConfigs[usage].add("language", "de");}}
+ </script></head>
+<body onload="">
+<form action="XSLT_DM_REQUEST" name="jp" method="POST"><input type="hidden" name="sessionID" id="sessionID" value="efa10.vrr.de_40963484"><input type="hidden" name="language" id="language" value="de"><input type="hidden" name="requestID" id="requestID" value="1"><input type="hidden" name="command" id="command" value=""><input type="hidden" name="useRealtime" value="1"><input type="hidden" name="itdLPxx_view" value=""><input type="hidden" name="ptOptionsActive" value="1"><input type="hidden" name="useProxFootSearch" value="0"><input type="hidden" name="deleteAssignedStops_dm" value="1"><input type="hidden" name="itdLPxx_mdvMap2_dm" id="itdLPxx_mdvMap2_dm" value="3406199:401077:NAV3"><input type="hidden" name="itdLPxx_mapState_dm" id="itdLPxx_mapState_dm" value=""><input type="hidden" name="itdLPxx_mdvMap_dm" id="itdLPxx_mdvMap_dm" value="3406199:401077:NAV3"><input type="hidden" name="itdLPxx_transpCompany" value="vrr"><table cellspacing="0" cellpadding="0" border="0">
+<tr>
+<td rowspan="3" valign="top" align="left" width="155">
+<table id="tabNav">
+<tr>
+<td class="leftHeader"></td>
+</tr>
+<tr>
+<td><a title="en" href="XSLT_TRIP_REQUEST2?language=en&amp;itdLPxx_transpCompany=vrr"><img src="images/flag/flag_en.gif" border="0"></a> <a title="fr" href="XSLT_TRIP_REQUEST2?language=fr&amp;itdLPxx_transpCompany=vrr"><img src="images/flag/flag_fr.gif" border="0"></a> <a title="es" href="XSLT_TRIP_REQUEST2?language=es&amp;itdLPxx_transpCompany=vrr"><img src="images/flag/flag_es.gif" border="0"></a> <a title="tr" href="XSLT_TRIP_REQUEST2?language=tr&amp;itdLPxx_transpCompany=vrr"><img src="images/flag/flag_tr.gif" border="0"></a></td>
+</tr>
+<tr>
+<td class="navLabelTextBoldColor"><a href="XSLT_TRIP_REQUEST2?language=de&amp;itdLPxx_transpCompany=vrr&amp;">Fahrplanauskunft</a></td>
+</tr>
+<tr>
+<td><a href="XSLT_STT_REQUEST?language=de&amp;itdLPxx_transpCompany=vrr&amp;">Aushangfahrplan</a></td>
+</tr>
+<tr>
+<td><a href="XSLT_DM_REQUEST?language=de&amp;itdLPxx_transpCompany=vrr&amp;">Abfahrtsmonitor</a></td>
+</tr>
+<tr>
+<td><a href="XSLT_PS_REQUEST2?language=de&amp;itdLPxx_transpCompany=vrr&amp;">Persönlicher Fahrplan</a></td>
+</tr>
+<tr>
+<td><a href="http://www.vrr.de/de/fahrplanauskunft/fahr_und_linienplaene/verbundfahrplan_schnellverkehr/index.html" target="vrr">Verbundfahrplan Schnellverkehr</a></td>
+</tr>
+<tr>
+<td><a href="http://www.vrr.de/de/fahrplanauskunft/fahr_und_linienplaene/linienplan_schnellverkehr/index.html" target="vrr">Linienplan Schnellverkehr</a></td>
+</tr>
+<tr>
+<td><a href="http://www.vrr.de/de/fahrplanauskunft/fahr_und_linienplaene/stadtlinienplaene/index.html" target="vrr">Stadtlinienpläne</a></td>
+</tr>
+<tr>
+<td><a href="./Bedienungshinweise_de.htm" target="vrr">Bedienungshinweise</a></td>
+</tr>
+<tr>
+<td><a href="XSLT_SCREEN_SAVER_REQUEST?language=de&amp;itdLPxx_transpCompany=vrr&amp;">Bildschirmschoner</a></td>
+</tr>
+<tr>
+<td><a href="XSLT_ADDINFO_REQUEST?language=de&amp;itdLPxx_transpCompany=vrr&amp;filterPublicationStatus=current&amp;filterShowPlaceList=1&amp;filterShowLineList=1&amp;filterShowStopList=0&amp;filterShowPlaceList=0&amp;">Aktuelle Hinweise</a></td>
+</tr>
+<tr>
+<td><a href="XSLT_TRIP_REQUEST2?language=de&amp;itdLPxx_transpCompany=vrr&amp;itdLPxx_urlGenerator=true&amp;">Ihr Link zu uns</a></td>
+</tr>
+<tr>
+<td><a href="http://www.vrr.de/de/global/impressum/index.html">Impressum</a></td>
+</tr>
+<tr>
+<td><a href="http://www.vrr.de/">Homepage</a></td>
+</tr>
+</table>
+</td>
+<td rowspan="3"> </td>
+<td valign="top" width="630" height="55">
+<table cellspacing="0" cellpadding="0" width="100%" border="0">
+<tr>
+<td colspan="3" height="35" align="left" class="logoHeader">
+<div class="textHeader">Abfahrtsmonitor</div>
+</td>
+</tr>
+<tr>
+<td colspan="3"><img src="images/dummy.gif" width="100%" height="5"></td>
+</tr>
+</table>
+<table cellspacing="0" cellpadding="0" width="630" border="0">
+<tr class="bgColor">
+<td colspan="3">
+<table cellspacing="0" cellpadding="0" width="100%" border="0">
+<tr>
+<td colspan="5"><img src="images/dummy.gif" width="1" height="5" alt="*"></td>
+</tr>
+<tr>
+<td width="2%" align="top" class="kaestchen"><img src="images/dummy.gif" width="7" height="13" border="0" alt="*"></td>
+<td width="10%"><span class="labelTextBold"> von:</span></td>
+<td width="40%"><span class="labelText">Essen / Berliner Platz</span></td>
+<td width="10%"><span class="labelTextBold"> </span></td>
+<td width="38%"><span class="labelText"> </span></td>
+</tr>
+<tr>
+<td width="2%" align="top"> </td>
+<td width="10%"><span class="labelTextBold"> Abfahrt:</span></td>
+<td width="40%"><span class="labelText">20:19</span><span class="labelText"> Uhr</span></td>
+<td width="10%"><span class="labelTextBold">Datum:</span></td>
+<td width="38%"><span class="labelText">11.09.2011</span></td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td colspan="3"><img src="images/dummy.gif" width="1" height="5" alt="*"></td>
+</tr>
+<tr class="bgColor">
+<td colspan="3"><img src="images/dummy.gif" width="1" height="5" alt="*"></td>
+</tr>
+<tr class="bgColor">
+<td colspan="3">
+<table cellspacing="0" cellpadding="0" width="100%" border="0">
+<tr>
+<td width="2%" align="top"><img src="images/dummy.gif" width="7" height="13" border="0" alt="*"></td>
+<td width="5%" align="center"><a href="javascript:document.forms[0].itdLPxx_view.value='printview';document.forms[0].command.value='nop';document.forms[0].submit();"><img src="images/drucker.jpg" width="20" height="20" border="0" alt="zur Druckversion"></a></td>
+<td width="55%"><span class="labelTextBold">zur Druckversion</span></td>
+<td width="38%" align="right"> </td>
+</tr>
+<tr>
+<td colspan="4"><img src="images/dummy.gif" width="1" height="5" alt="*"></td>
+</tr>
+</table>
+</td>
+</tr>
+<tr class="bgColor">
+<td colspan="3"><img src="images/dummy.gif" width="1" height="5" alt="*"></td>
+</tr>
+<tr>
+<td colspan="3"><img src="images/dummy.gif" width="1" height="5" alt="*"></td>
+</tr>
+<tr class="bgColor">
+<td colspan="3"><img src="images/dummy.gif" width="1" height="5" alt="*"></td>
+</tr>
+<tr class="bgColor">
+<td colspan="3">
+<table cellspacing="0" cellpadding="3" width="100%" border="0">
+<tr>
+<TD> </TD>
+<TD align="center" class="labelTextBold"> Zeit </TD>
+<TD align="center" class="labelTextBold">Abfahrt  </TD>
+<td></td>
+<TD class="labelTextBold">Linie </TD>
+<TD> </TD>
+<TD class="labelTextBold">Richtung </TD>
+<TD> </TD>
+<TD class="labelTextBold">Hinweise</TD>
+</tr>
+<tr class="bgColor">
+<td> </td>
+<td class="labelText" align="middle">20:19</td>
+<td class="labelText" align="left">Bstg. 1</td>
+<td class="labelText" align="middle"><img src="images/means/tram.gif" width="32" height="32" alt="Tram"></td>
+<td class="labelText">103</td>
+<td> </td>
+<td class="labelText">Essen Wertstr.</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor2">
+<td> </td>
+<td class="labelText" align="middle">20:19</td>
+<td class="labelText" align="left">Bstg. 2</td>
+<td class="labelText" align="middle"><img src="images/means/tram.gif" width="32" height="32" alt="Tram"></td>
+<td class="labelText">101</td>
+<td> </td>
+<td class="labelText">Essen Hauptbahnhof</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor">
+<td> </td>
+<td class="labelText" align="middle">20:19</td>
+<td class="labelText" align="left">Bstg. 3</td>
+<td class="labelText" align="middle"><img src="images/means/nf_bus.gif" width="32" height="32" alt="Niederflurbus"></td>
+<td class="labelText">166</td>
+<td> </td>
+<td class="labelText">E-Burgaltendorf Burgruine</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor2">
+<td> </td>
+<td class="labelText" align="middle">20:21</td>
+<td class="labelText" align="left">Bstg. 2</td>
+<td class="labelText" align="middle"><img src="images/means/u_bahn.gif" width="32" height="32" alt="U-Bahn"></td>
+<td class="labelText">U11</td>
+<td> </td>
+<td class="labelText">Essen Messe W.-Süd/Gruga</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor">
+<td> </td>
+<td class="labelText" align="middle">20:21</td>
+<td class="labelText" align="left">Bstg. 2</td>
+<td class="labelText" align="middle"><img src="images/means/tram.gif" width="32" height="32" alt="Tram"></td>
+<td class="labelText">105</td>
+<td> </td>
+<td class="labelText">Essen Finefraustr.</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor2">
+<td> </td>
+<td class="labelText" align="middle">20:21</td>
+<td class="labelText" align="left">Bstg. 1</td>
+<td class="labelText" align="middle"><img src="images/means/u_bahn.gif" width="32" height="32" alt="U-Bahn"></td>
+<td class="labelText">U17</td>
+<td> </td>
+<td class="labelText">Essen Karlsplatz</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor">
+<td> </td>
+<td class="labelText" align="middle">20:26</td>
+<td class="labelText" align="left">Bstg. 2</td>
+<td class="labelText" align="middle"><img src="images/means/tram.gif" width="32" height="32" alt="Tram"></td>
+<td class="labelText">109</td>
+<td> </td>
+<td class="labelText">Essen Steele S</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor2">
+<td> </td>
+<td class="labelText" align="middle">20:27</td>
+<td class="labelText" align="left">Bstg. 2</td>
+<td class="labelText" align="middle"><img src="images/means/nf_bus.gif" width="32" height="32" alt="Niederflurbus"></td>
+<td class="labelText">147</td>
+<td> </td>
+<td class="labelText">Essen Grimbergstr.</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor">
+<td> </td>
+<td class="labelText" align="middle">20:29</td>
+<td class="labelText" align="left">Bstg. 1</td>
+<td class="labelText" align="middle"><img src="images/means/u_bahn.gif" width="32" height="32" alt="U-Bahn"></td>
+<td class="labelText">U11</td>
+<td> </td>
+<td class="labelText">Gelsenkirchen Buerer Str.</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor2">
+<td> </td>
+<td class="labelText" align="middle">20:29</td>
+<td class="labelText" align="left">Bstg. 2</td>
+<td class="labelText" align="middle"><img src="images/means/u_bahn.gif" width="32" height="32" alt="U-Bahn"></td>
+<td class="labelText">U17</td>
+<td> </td>
+<td class="labelText">Essen Margarethenhöhe</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor">
+<td> </td>
+<td class="labelText" align="middle">20:30</td>
+<td class="labelText" align="left">Bstg. 1</td>
+<td class="labelText" align="middle"><img src="images/means/nf_bus.gif" width="32" height="32" alt="Niederflurbus"></td>
+<td class="labelText">147</td>
+<td> </td>
+<td class="labelText">Essen Erbach</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor2">
+<td> </td>
+<td class="labelText" align="middle">20:31</td>
+<td class="labelText" align="left">Bstg. 2</td>
+<td class="labelText" align="middle"><img src="images/means/u_bahn.gif" width="32" height="32" alt="U-Bahn"></td>
+<td class="labelText">U18</td>
+<td> </td>
+<td class="labelText">Mülheim Hbf</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor">
+<td> </td>
+<td class="labelText" align="middle">20:32</td>
+<td class="labelText" align="left">Bstg. 1</td>
+<td class="labelText" align="middle"><img src="images/means/tram.gif" width="32" height="32" alt="Tram"></td>
+<td class="labelText">109</td>
+<td> </td>
+<td class="labelText">Essen Frohnhausen Breilsort</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor2">
+<td> </td>
+<td class="labelText" align="middle">20:34</td>
+<td class="labelText" align="left">Bstg. 1</td>
+<td class="labelText" align="middle"><img src="images/means/tram.gif" width="32" height="32" alt="Tram"></td>
+<td class="labelText">105</td>
+<td> </td>
+<td class="labelText">Essen Unterstr.</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor">
+<td> </td>
+<td class="labelText" align="middle">20:36</td>
+<td class="labelText" align="left">Bstg. 4</td>
+<td class="labelText" align="middle"><img src="images/means/nf_bus.gif" width="32" height="32" alt="Niederflurbus"></td>
+<td class="labelText">166</td>
+<td> </td>
+<td class="labelText">Essen Dellwig Bahnhof</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor2">
+<td> </td>
+<td class="labelText" align="middle">20:36</td>
+<td class="labelText" align="left">Bstg. 2</td>
+<td class="labelText" align="middle"><img src="images/means/u_bahn.gif" width="32" height="32" alt="U-Bahn"></td>
+<td class="labelText">U11</td>
+<td> </td>
+<td class="labelText">Essen Messe W.-Süd/Gruga</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor">
+<td> </td>
+<td class="labelText" align="middle">20:36</td>
+<td class="labelText" align="left">Bstg. 2</td>
+<td class="labelText" align="middle"><img src="images/means/tram.gif" width="32" height="32" alt="Tram"></td>
+<td class="labelText">103</td>
+<td> </td>
+<td class="labelText">Essen Hauptbahnhof</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor2">
+<td> </td>
+<td class="labelText" align="middle">20:37</td>
+<td class="labelText" align="left">Bstg. 1</td>
+<td class="labelText" align="middle"><img src="images/means/tram.gif" width="32" height="32" alt="Tram"></td>
+<td class="labelText">101</td>
+<td> </td>
+<td class="labelText">Essen Germaniaplatz</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor">
+<td> </td>
+<td class="labelText" align="middle">20:40</td>
+<td class="labelText" align="left">Bstg. 1</td>
+<td class="labelText" align="middle"><img src="images/means/nf_bus.gif" width="32" height="32" alt="Niederflurbus"></td>
+<td class="labelText">145</td>
+<td> </td>
+<td class="labelText">Essen Fängershof Schleife</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor2">
+<td> </td>
+<td class="labelText" align="middle">20:41</td>
+<td class="labelText" align="left">Bstg. 2</td>
+<td class="labelText" align="middle"><img src="images/means/tram.gif" width="32" height="32" alt="Tram"></td>
+<td class="labelText">109</td>
+<td> </td>
+<td class="labelText">Essen Steele S</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor">
+<td> </td>
+<td class="labelText" align="middle">20:44</td>
+<td class="labelText" align="left">Bstg. 2</td>
+<td class="labelText" align="middle"><img src="images/means/u_bahn.gif" width="32" height="32" alt="U-Bahn"></td>
+<td class="labelText">U17</td>
+<td> </td>
+<td class="labelText">Essen Margarethenhöhe</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor2">
+<td> </td>
+<td class="labelText" align="middle">20:44</td>
+<td class="labelText" align="left">Bstg. 1</td>
+<td class="labelText" align="middle"><img src="images/means/u_bahn.gif" width="32" height="32" alt="U-Bahn"></td>
+<td class="labelText">U11</td>
+<td> </td>
+<td class="labelText">Gelsenkirchen Buerer Str.</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor">
+<td> </td>
+<td class="labelText" align="middle">20:46</td>
+<td class="labelText" align="left">Bstg. 2</td>
+<td class="labelText" align="middle"><img src="images/means/u_bahn.gif" width="32" height="32" alt="U-Bahn"></td>
+<td class="labelText">U18</td>
+<td> </td>
+<td class="labelText">Mülheim Hbf</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor2">
+<td> </td>
+<td class="labelText" align="middle">20:46</td>
+<td class="labelText" align="left">Bstg. 2</td>
+<td class="labelText" align="middle"><img src="images/means/nf_bus.gif" width="32" height="32" alt="Niederflurbus"></td>
+<td class="labelText">145</td>
+<td> </td>
+<td class="labelText">Essen Heisingen Baldeneysee</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor">
+<td> </td>
+<td class="labelText" align="middle">20:47</td>
+<td class="labelText" align="left">Bstg. 1</td>
+<td class="labelText" align="middle"><img src="images/means/tram.gif" width="32" height="32" alt="Tram"></td>
+<td class="labelText">109</td>
+<td> </td>
+<td class="labelText">Essen Frohnhausen Breilsort</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor2">
+<td> </td>
+<td class="labelText" align="middle">20:49</td>
+<td class="labelText" align="left">Bstg. 2</td>
+<td class="labelText" align="middle"><img src="images/means/tram.gif" width="32" height="32" alt="Tram"></td>
+<td class="labelText">101</td>
+<td> </td>
+<td class="labelText">Essen Hauptbahnhof</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor">
+<td> </td>
+<td class="labelText" align="middle">20:49</td>
+<td class="labelText" align="left">Bstg. 1</td>
+<td class="labelText" align="middle"><img src="images/means/tram.gif" width="32" height="32" alt="Tram"></td>
+<td class="labelText">103</td>
+<td> </td>
+<td class="labelText">Essen Wertstr.</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor2">
+<td> </td>
+<td class="labelText" align="middle">20:49</td>
+<td class="labelText" align="left">Bstg. 3</td>
+<td class="labelText" align="middle"><img src="images/means/nf_bus.gif" width="32" height="32" alt="Niederflurbus"></td>
+<td class="labelText">166</td>
+<td> </td>
+<td class="labelText">Hattingen Märkische Str</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor">
+<td> </td>
+<td class="labelText" align="middle">20:51</td>
+<td class="labelText" align="left">Bstg. 2</td>
+<td class="labelText" align="middle"><img src="images/means/tram.gif" width="32" height="32" alt="Tram"></td>
+<td class="labelText">105</td>
+<td> </td>
+<td class="labelText">Essen Finefraustr.</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor2">
+<td> </td>
+<td class="labelText" align="middle">20:52</td>
+<td class="labelText" align="left">Bstg. 2</td>
+<td class="labelText" align="middle"><img src="images/means/u_bahn.gif" width="32" height="32" alt="U-Bahn"></td>
+<td class="labelText">U11</td>
+<td> </td>
+<td class="labelText">Essen Messe W.-Süd/Gruga</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor">
+<td> </td>
+<td class="labelText" align="middle">20:56</td>
+<td class="labelText" align="left">Bstg. 2</td>
+<td class="labelText" align="middle"><img src="images/means/tram.gif" width="32" height="32" alt="Tram"></td>
+<td class="labelText">109</td>
+<td> </td>
+<td class="labelText">Essen Hollestr.</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor2">
+<td> </td>
+<td class="labelText" align="middle">20:57</td>
+<td class="labelText" align="left">Bstg. 2</td>
+<td class="labelText" align="middle"><img src="images/means/nf_bus.gif" width="32" height="32" alt="Niederflurbus"></td>
+<td class="labelText">147</td>
+<td> </td>
+<td class="labelText">Essen Grimbergstr.</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor">
+<td> </td>
+<td class="labelText" align="middle">20:59</td>
+<td class="labelText" align="left">Bstg. 2</td>
+<td class="labelText" align="middle"><img src="images/means/u_bahn.gif" width="32" height="32" alt="U-Bahn"></td>
+<td class="labelText">U17</td>
+<td> </td>
+<td class="labelText">Essen Margarethenhöhe</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor2">
+<td> </td>
+<td class="labelText" align="middle">21:00</td>
+<td class="labelText" align="left">Bstg. 1</td>
+<td class="labelText" align="middle"><img src="images/means/nf_bus.gif" width="32" height="32" alt="Niederflurbus"></td>
+<td class="labelText">147</td>
+<td> </td>
+<td class="labelText">Essen Erbach</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor">
+<td> </td>
+<td class="labelText" align="middle">21:01</td>
+<td class="labelText" align="left">Bstg. 2</td>
+<td class="labelText" align="middle"><img src="images/means/u_bahn.gif" width="32" height="32" alt="U-Bahn"></td>
+<td class="labelText">U18</td>
+<td> </td>
+<td class="labelText">Mülheim Hbf</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor2">
+<td> </td>
+<td class="labelText" align="middle">21:03</td>
+<td class="labelText" align="left">Bstg. 1</td>
+<td class="labelText" align="middle"><img src="images/means/u_bahn.gif" width="32" height="32" alt="U-Bahn"></td>
+<td class="labelText">U11</td>
+<td> </td>
+<td class="labelText">Gelsenkirchen Buerer Str.</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor">
+<td> </td>
+<td class="labelText" align="middle">21:04</td>
+<td class="labelText" align="left">Bstg. 1</td>
+<td class="labelText" align="middle"><img src="images/means/tram.gif" width="32" height="32" alt="Tram"></td>
+<td class="labelText">105</td>
+<td> </td>
+<td class="labelText">Essen Unterstr.</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor2">
+<td> </td>
+<td class="labelText" align="middle">21:06</td>
+<td class="labelText" align="left">Bstg. 2</td>
+<td class="labelText" align="middle"><img src="images/means/tram.gif" width="32" height="32" alt="Tram"></td>
+<td class="labelText">103</td>
+<td> </td>
+<td class="labelText">Essen Hauptbahnhof</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor">
+<td> </td>
+<td class="labelText" align="middle">21:06</td>
+<td class="labelText" align="left">Bstg. 4</td>
+<td class="labelText" align="middle"><img src="images/means/nf_bus.gif" width="32" height="32" alt="Niederflurbus"></td>
+<td class="labelText">166</td>
+<td> </td>
+<td class="labelText">Essen Dellwig Bahnhof</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+<tr class="bgColor2">
+<td> </td>
+<td class="labelText" align="middle">21:07</td>
+<td class="labelText" align="left">Bstg. 1</td>
+<td class="labelText" align="middle"><img src="images/means/tram.gif" width="32" height="32" alt="Tram"></td>
+<td class="labelText">101</td>
+<td> </td>
+<td class="labelText">Essen Germaniaplatz</td>
+<td> </td>
+<td class="labelText"></td>
+</tr>
+</table>
+</td>
+</tr>
+<tr class="bgColor">
+<td colspan="3"><img src="images/dummy.gif" width="1" height="5" alt="*"></td>
+</tr>
+<tr>
+<td colspan="3"><img src="images/dummy.gif" width="1" height="5" alt="*"></td>
+</tr>
+<tr class="bgColor">
+<td colspan="3"><img src="images/dummy.gif" width="1" height="5" alt="*"></td>
+</tr>
+<tr class="bgColor">
+<td colspan="3">
+<table cellspacing="0" cellpadding="0" width="100%" border="0">
+<tr>
+<td width="2%"></td>
+<td valign="center"><img src="images/Rbl_nOK.gif" width="13" height="30" border="0" title="Abweichung" alt="Abweichung"></td>
+<td valign="center"><span class="labelText" valign="center">Verspätungen sind berücksichtigt</span></td>
+<td width="2%"></td>
+<td valign="center"><img src="images/Rbl.gif" width="13" height="30" border="0" title="Pünktlich" alt="Pünktlich"></td>
+<td valign="center"><span class="labelText" valign="center">Fahrt voraussichtlich pünktlich</span></td>
+</tr>
+</table>
+</td>
+</tr>
+<tr class="bgColor">
+<td colspan="3"><img src="images/dummy.gif" width="1" height="5" alt="*"></td>
+</tr>
+<tr>
+<td colspan="3"><img src="images/dummy.gif" width="1" height="5" alt="*"></td>
+</tr>
+<tr class="bgColor">
+<td colspan="3"><img src="images/dummy.gif" width="1" height="5" alt="*"></td>
+</tr>
+<tr class="bgColor">
+<td colspan="3">
+<table cellspacing="0" cellpadding="0" width="100%" border="0">
+<tr>
+<td width="2%" align="top"><img src="images/dummy.gif" width="7" height="13" border="0" alt="*"></td>
+<td width="5%" align="center"><a href="javascript:document.forms[0].itdLPxx_view.value='printview';document.forms[0].command.value='nop';document.forms[0].submit();"><img src="images/drucker.jpg" width="20" height="20" border="0" alt="zur Druckversion"></a></td>
+<td width="55%"><span class="labelTextBold">zur Druckversion</span></td>
+<td width="38%" align="right"> </td>
+</tr>
+<tr>
+<td colspan="4"><img src="images/dummy.gif" width="1" height="5" alt="*"></td>
+</tr>
+</table>
+</td>
+</tr>
+<tr class="bgColor">
+<td colspan="3"><img src="images/dummy.gif" width="1" height="5" alt="*"></td>
+</tr>
+<tr>
+<td colspan="3"><img src="images/dummy.gif" width="1" height="5" alt="*"></td>
+</tr>
+<tr class="buttonBgColor">
+<td colspan="3"><img src="images/dummy.gif" width="1" height="5" alt="*"></td>
+</tr>
+<tr class="buttonBgColor">
+<td colspan="3" align="center"><input type="button" name="reset" value="neue Anfrage" onClick="document.location.href='XSLT_DM_REQUEST?language=de&amp;itdLPxx_transpCompany=vrr'"></td>
+</tr>
+<tr class="buttonBgColor">
+<td colspan="3"><img src="images/dummy.gif" width="1" height="5" alt="*"></td>
+</tr>
+<tr>
+<td colspan="3">
+<table cellspacing="0" cellpadding="0" width="100%" border="0">
+<td height="40" valign="middle" align="left"><img src="images/dummy.gif" width="1" height="5" alt="*"></td>
+<td width="220" valign="bottom"><img src="images/ein-Service-des-VRR.gif" width="220" height="36" alt="*" align="right"></td>
+</table>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+</form>
+</body>
+</html>