Thread Ausgabe eines URLs parsen (12 answers)
Opened by perl-snaks at 2012-04-19 10:58

perl-snaks
 2012-04-23 16:30
#157780 #157780
User since
2012-04-19
54 articles
BenutzerIn
[default_avatar]
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)

View full thread Ausgabe eines URLs parsen