Moin
Ich habe immer noch Probleme.
Die Informationen stehen ja in etwa wie folgt auf der Webseite die ich abfrage:
Code: Alles auswählen
<Rechnername> <Service> <Status> <LastCheck> <Duration> <Attempt> <Infotext>
<Service> <Status> <LastCheck> <Duration> <Attempt> <Infotext>
<Service> <Status> <LastCheck> <Duration> <Attempt> <Infotext>
...
<Rechnername> <Service> <Status> <LastCheck> <Duration> <Attempt> <Infotext>
<Service> <Status> <LastCheck> <Duration> <Attempt> <Infotext>
<Service> <Status> <LastCheck> <Duration> <Attempt> <Infotext>
...
wie man sieht steht der Rechnername immer nur einmal in der ersten Zeile.
Wenn ich die Seite wie nachstehend auslese, bekomme ich nur die Zeile mit Rechnernamen:
Code: Alles auswählen
'<htmlparser:loop><TR>'+
'<TD CLASS="statusHOSTDOWN"><htmlparser:read var="host" source="text()"/></TD>'+
'<TD CLASS="statusBGCRITICAL"><htmlparser:read var="service" source="text()"/></TD>'+
'<TD CLASS="statusCRITICAL"><htmlparser:read var="status" source="text()"/></TD>'+
'<TD CLASS="statusBGCRITICAL"><htmlparser:read var="last_check" source="text()"/></TD>'+
'<TD CLASS="statusBGCRITICAL"><htmlparser:read var="duration" source="text()"/></TD>'+
'<TD CLASS="statusBGCRITICAL"><htmlparser:read var="attempt" source="text()"/></TD>'+
'<TD CLASS="statusBGCRITICAL"><htmlparser:read var="status_information" source="text()"/></TD>'+
'</TR></htmlparser:loop>');
Wenn ich sie dagegen ohne den Host-Teil auslese, fehlt mir der Hostname:
Code: Alles auswählen
parser.parseTemplate(
'<htmlparser:loop><TR>'+
'<TD CLASS="statusBGCRITICAL"><htmlparser:read var="service" source="text()"/></TD>'+
'<TD CLASS="statusCRITICAL"><htmlparser:read var="status" source="text()"/></TD>'+
'<TD CLASS="statusBGCRITICAL"><htmlparser:read var="last_check" source="text()"/></TD>'+
'<TD CLASS="statusBGCRITICAL"><htmlparser:read var="duration" source="text()"/></TD>'+
'<TD CLASS="statusBGCRITICAL"><htmlparser:read var="attempt" source="text()"/></TD>'+
'<TD CLASS="statusBGCRITICAL"><htmlparser:read var="status_information" source="text()"/></TD>'+
'</TR></htmlparser:loop>');
Danach dachte ich ich bin mal clever und schreibe die beiden Teile nacheinander.
Ergebnis: Erst bekomme ich die beiden Zeilen mit Rechnernamen zurück und dann alle Einträge ohne den Namen.
Der ganze Bock mit einer Fehlerzeile sieht ja in etwa immer so aus:
Code: Alles auswählen
<TD ALIGN=LEFT valign=center CLASS='statusBGCRITICAL'><A HREF='extinfo.cgi?type=2&host=Netbook&service=NSClient%2B%2B+Version'>NSClient++ Version</A></TD></TR>
</TABLE>
</TD>
<TD ALIGN=RIGHT CLASS='statusBGCRITICAL'>
<TABLE BORDER=0 cellspacing=0 cellpadding=0>
<TR>
</TR>
</TABLE>
</TD>
</TR></TABLE></TD>
<TD CLASS='statusCRITICAL'>CRITICAL</TD>
<TD CLASS='statusBGCRITICAL' nowrap>13-02-2011 16:57:41</TD>
<TD CLASS='statusBGCRITICAL' nowrap> 0d 8h 26m 3s</TD>
<TD CLASS='statusBGCRITICAL'>3/3</TD>
<TD CLASS='statusBGCRITICAL' valign='center'>No route to host </TD>
</TR>
Komme ich da mit dem Parser irgendwie an die erste Zeile mit dem
heran? Da steht ja immer der Hostname (hier Netbook) drin, den könnte ich dann irgendwie herausextrahieren. Das Problem für mich besteht darin diese Info mit den HREF=... erst einmal zu bekommen.
Ich hoffe ich hab´s nicht zu kompliziert erklärt..
Gruß
Michael