Merhaba,
Basit bix XML dosyasından verileri alıp HTML dosyası oluşturan bir perl scripti paylaşmak istiyorum.
Öncelikle XML dosyasını alttaki şekilde fooxml.xml dosyası olarak oluşturalım.
<config logfiles="/var/log/foologs/" debugfile="/tmp/foo.dbg" misc="mytest">
<server name="ankara" osname="unix" osversion="2.6.5.3">
<ipaddress>
<address>10.1.0.101</address>
<address>10.1.1.102</address>
</ipaddress>
<macaddress>
<address>10:54:E5:12:43:A4:E2:21</address>
<address>10:54:E5:12:45:A4:A4:41</address>
</macaddress>
</server>
<server name="istanbul" osname="linux" osversion="6.6.5.3">
<ipaddress>
<address>10.16.0.105</address>
<address>10.16.1.106</address>
</ipaddress>
<macaddress>
<address>10:54:E5:12:43:A4:B2:31</address>
<address>10:54:E5:12:43:E4:6Y:65</address>
</macaddress>
</server>
</config>
Yukarıda gösterile XML dosyasını parse edecek scriptimizi perl ile oluşturacağız. Dosya ismi fooxmlparser.pl ve içeriği alttaki gibi olsun.
#!/usr/bin/perl
###Gerekli XML kutuphaneleri
use XML::Simple qw(:strict);
use Data::Dumper;
###XML dosyasini parse edip ekrana bastiralim
my $config = XMLin("C:\\Otomasyon\\PerlXMLparser\\fooxml.xml", KeyAttr => { server => 'name' }, ForceArray => [ 'server', 'address' ]);
print "Parse Edilecek XML Ciktisi : \n\**********\n";
print Dumper($config);
print "\n*************\n";
###Config icinde tanimli degerleri almaniz gerekirse alttakileri kullanabilirsiniz.###
#print $config->{logdir};
#print "\n";
#print $config->{debugfile};
#print "\n";
#print $config->{misc};
###HTML dosyasina yazacagimiz degiskenlere atama yapalim
my $srvankara="ankara";
my $srvankaraip1 = $config->{server}->{ankara}->{ipaddress}->{address}->[1];
my $srvankaramac1 = $config->{server}->{ankara}->{macaddress}->{address}->[1];
my $srvistanbul="istanbul";
my $srvistanbulip1 = $config->{server}->{istanbul}->{ipaddress}->{address}->[1];
my $srvistanbulmac1 = $config->{server}->{istanbul}->{macaddress}->{address}->[1];
###HTML dosyasina yazacagimiz degiskenleri ayrica ekrana bastiralim
print "Server : ANKARA\n\n";
print "IP Address 1: ";
print $config->{server}->{ankara}->{ipaddress}->{address}->[1];
print "\n\n";
print "MAC Address 1: ";
print $config->{server}->{ankara}->{macaddress}->{address}->[1];
print "\n";
print "Server : ISTANBUL\n\n";
print "IP Address 1: ";
print $config->{server}->{istanbul}->{ipaddress}->{address}->[1];
print "\n\n";
print "MAC Address 1: ";
print $config->{server}->{istanbul}->{macaddress}->{address}->[1];
print "\n\n\n";
###HTML dosya içeriğini oluşturalım
print "HTML Ciktisi : \n\n";
print "<html>\n\n<meta>\n<title>XML Ciktisi</title>\n</meta>\n\n<body>\n\n<table>";
print "\n<tr><td>".$srvankara."</td></tr>";
print "\n<tr><td>".$srvankaraip1."</td></tr>";
print "\n<tr><td>".$srvankaramac1."</td></tr>";
print "\n<tr><td>".$srvistanbul."</td></tr>";
print "\n<tr><td>".$srvistanbulip1."</td></tr>";
print "\n<tr><td>".$srvistanbulmac1."</td></tr>\n</table>\n\n</body>\n</html>";
Hiç yorum yok:
Yorum Gönder