hallo nochmal
so habe mir beide mal angeschaut.. und wieder ne frage
ExRevel benutz arrays was in meinem fall nich ganz so die gute lösung ist.. werde aber sicher auch noch arrays benutzen..
ich mische eure hinweise zusammen
my ($x) = m/\<x\>\s(\d+)\s\<\/x\>/; # $_ wird dann in den Regex verwendet
my ($y) = m/\<y\>\s(\d+)\s\<\/y\>/; # und die Werte werden $x und $y zugewiesen
ok was macht m/ und (/d+)? \s\ nimmt wohl die leerzeichen raus wenn ich mich nicht irre.. sagt mir bitte wenn ich falsch liege..
mein problem ist was ist wenn zwischen
<x> 192.168.0.1 </x>
steht oder wert_zahl (unterstrich... sonderzeichen)
cu
hoffe auf schnell antwort
--
hi
habe gelesen das man es mit XML:SimpleObject auch auslesen kann.. hab jetzt schon viel gegoogelt aber ich versteh es nicht
---
so hallo hallo
hab jetzt etwas gefunden
nehmen wir an wir haben folgenden inhalt der xml file
Code:
<NODE>
<HOST NAME="q9j2k">
<MODEL> none </MODEL>
<OS_VERSION> Linux 2.4.18-64GB-SMP </OS_VERSION>
<LANGUAGE> en_US </LANGUAGE> <!-- Ermittlung der Sprache z.B. fuer win Deutsch= 1031 Englisch= 1033 -->
<CPU_NAME> GenuineIntel </CPU_NAME>
<CPU_CAPTION> PentiumIII(Cascades) </CPU_CAPTION> <!-- Ermittlung der zugehoerigen Familie der CPU -->
<CPU> 2 </CPU> <!-- Ermittlung von der Anzahl der CPU -->
<CPUSPEED> 701.636 </CPUSPEED>
<L2_CACHESIZE> 1024 </L2_CAHCESIZE>
<DISKDRIVESIZE>
<SIZE>2.8G</SIZE>
<SIZE>101M</SIZE>
<SIZE>5.5G</SIZE>
<SIZE>38G</SIZE>
</DISKDRIVESIZE>
<SYSTEMSERIAL_NR> none </SYSTEMSERIAL_NR>
<FIBRECHANNEL> none </FIBRECHANNEL> <!-- Ermittelt die Anzahl der Fibrechannel`s -->>
<MEMORY> 2069356 </MEMORY>
<NETMODUL> e100 </NETMODUL> <!-- Ermittliung der Netzwerkmodule -->
<NET_IP> <!-- Ermittlung der IP`s -->
<IP> eth0 164.20.111.32 </IP>
</NET_IP>
<NET_VIP> <!-- Ermittlung der virtuellen IP`s
<VIP> </VIP>
</NET_VIP>
</HOST>
</NODE>
wenn ich jetzt folgendes script anwende
Code:
#!/usr/bin/perl
use XML::Parser;
my $zeiger = new XML::Parser ();
$zeiger->setHandlers (Start => \&anfang,End => \&ende,Char=>\&inhalt );
$zeiger->parsefile ("test.xml");
sub anfang
{
$wert_des_zeigers = shift;
$starttag= shift;
print "<$starttag>";
print "\n";
}
sub ende
{
($wert_des_zeigers,$endtag) = @_;
print "</$endtag>\n";
}
sub inhalt
{
($wert_des_zeigers,$inhalt)=@_;
print " $inhalt";
}
habe ich folgende ausgabe
Code:
<NODE>
<HOST>
<MODEL>
none </MODEL>
<OS_VERSION>
Linux 2.4.18-64GB-SMP </OS_VERSION>
<LANGUAGE>
en_US </LANGUAGE>
<CPU_NAME>
GenuineIntel </CPU_NAME>
<CPU_CAPTION>
PentiumIII(Cascades) </CPU_CAPTION>
<CPU>
2 </CPU>
<CPUSPEED>
701.636 </CPUSPEED>
<L2_CACHESIZE>
hier bricht er wegen einem fehler ab.. aber das ist jetzt erst mal egal...
so das problem ist jetzt das ich diesen Inhalt in einer variablen brauche am besten der name des Anfangtags also bei
Code:
<CPUSPEED>
701.636 </CPUSPEED>
soll er die variable CPUSPEED mit dem wert 701.636 haben ( CPUSPEED=701.636)
so genau das brauche ich hoffe ihr könnt mir helfen...
p.s. ich rache hier schon .. bekomme anscheint nicht mal leichte sachen hin.