Thread Ausgabe eines URLs parsen
(12 answers)
Opened by perl-snaks at 2012-04-19 10:58
vielen Dank für ihre Antwort.
Ich habe ein report mit dem Modul XML::parser zu html konvertiert.(aber manual) Mein Problem ist, dass ich z.B eine URL in der Adresse leiste eingebe. Diese URL verfügt über Parameter. z.B referenz. mit einem bestimmten referenz bekomme ich einen Report als XML. Und will diese XML zu HTML parsen. Dafür habe ich dies Skript geschrieben. Aber ich bekomm das irgendwie nicht hin. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 #!C:\Perl\bin\Perl.exe print "Content-type:text/html\n\n"; use CGI; use CGI::Carp qw(fatalsToBrowser); use LWP::Simple; use XML::Simple; use XML::Parser; use XML::LibXML; my $cgi = new CGI; my $var = CGI:aram('ip'); my $url1 = 'https://www.xxyyzz.de/'; ### url my $uri = "$url1?ref=$var& save_report=yes" ; #### es gibt eine HTML-Seite mit einem Inputfeld nach der eingabe des Referenzes # wird in der URL # übermittelt und ganze URL an den Server des Hertsteller geleitet, so dass der server anhand des eingegeben Referenz # ein Report als XMl zur Verfügung stellt. print "Location: $uri\n\n"; open(KIRSCHE,">>c:/Programme/Apache/cgi-bin/grab.xml"); ####XML Ausgabe soll in dieser Datei gespeichert select(KIRSCHE); print KIRSCHE $doc; select(STDOUT); close(KIRSCHE); my $zeiger = new XML::Parser (); ######die gespeicherte Datei parsen $zeiger->setHandlers ( Start => \&anfang, End => \&ende,Char=>\&inhalt ); $zeiger->parsefile ("grab.xml"); print "<html><head><body>"; sub inhalt { ($wert_des_zeigers,$inhalt)=@_; print " <table><td>$inhalt</td></table>"; } sub ende { %watnu2=("SCAN"=>"</table>","KEY"=> "</td>","IP"=>"</td>","OS"=>"</td>","NETBIOS_HOSTNAME"=>"</td></tr>"); ($wert_des_zeigers,$endtag) = @_; print "$watnu2{$endtag}"; } sub anfang { %watnu1=("SCAN"=>"</table>","KEY"=> "</td>","IP"=>"</td>","OS"=>"</td>","NETBIOS_HOSTNAME"=>"</td></tr>"); $wert_des_zeigers = shift; $starttag=shift; print $watnu1{$starttag}; print "\n"; } Hat jemand eine Idee wie ich die URL ausgabe (XML) in einem Verzeichnis speichere und wieder mit XML::parser kodieren. Vielen Dank im Voraus. modedit Editiert von pq: code-tags hinzugefügt, lange kommentarzeile umgebrochen Last edited: 2012-04-23 16:46:02 +0200 (CEST) |