Perl-Strukturen als XML schreiben
pauli
- perl
Hallo zusammen
ich versuche gerade aus Perl eine XML datei zu erstellen.
http://www.zdnet.de/39126641/xml-dokumente-mit-perls-xml-simple-parsen/3/
Auf dieser Seite habe ich einige gute Infos gefunden und angewendet.
use XML::Simple;
use Data::Dumper;
# Array erstellen
@arr = [
{'country'=>'england', 'capital'=>'london'},
{'country'=>'norway', 'capital'=>'oslo'},
{'country'=>'india', 'capital'=>'new delhi'} ];
# Objekt erstellen
$xml = new XML::Simple (NoAttr=>1, RootName=>data);
# Perl-Array-Referenz in XML-Dokument umwandeln
$data = $xml->XMLout(@arr);
# auf XML-Daten zugreifen
print Dumper($data);
Ich habe dies ausprobiert und hat erfolgreich geklappt.
Nun meine frage.. Ich habe verschiedene Werte in einer Variablen, weil ich mir diese aus einer anderen Datei ziehe. Hier ein bsp: $java_opts_X = "-Xmx2g -Xms2g -XX:PermSize=256M -XX:MaxPermSize=256M -XX:NewSize=512M -XX:MaxNewSize=512M"
Wie muss ich vorgehen, so dass ich nicht alles manuell machen muss wie oben bei "country"?
Statt "country" wäre es dann aber "JAVA_OPTS". Geht es irgendwie mit einer Schlaufe?
Ich habe schon einiges versucht und infos geholt, leider ohne erfolg.
Ich hoffe Ihr könnt mir helfen.
Hier fehlt das Beispiel, wie das gewünschte XML, das aus dem String $java_opts_X
transformiert wird, aussehen soll. Hole dies nach.
Hallo
Hier fehlt das Beispiel, wie das gewünschte XML, das aus dem String
$java_opts_X
transformiert wird, aussehen soll. Hole dies nach.
Ich habe ja geschrieben es soll mit country ersetzt werden. Also hab ich an so etwas gedacht...
<data>
<java>
<java_opts>Xmx2g</java_opts>
<java_opts>Xms2g</java_opts>
<java_opts>XX:PermSize=256M</java_opts>
..
..
</java>
</data>
Ich hoffe auf Hilfe.
use XML::Simple qw(:strict XMLout);
my $java_opts_X = '-Xmx2g -Xms2g -XX:PermSize=256M -XX:MaxPermSize=256M -XX:NewSize=512M -XX:MaxNewSize=512M';
print XMLout { java => [ { java_opts => [ grep $_, split qr/[- ]/, $java_opts_X ] } ] },
KeyAttr => undef, RootName => 'data';
__END__
<data>
<java>
<java_opts>Xmx2g</java_opts>
<java_opts>Xms2g</java_opts>
<java_opts>XX:PermSize=256M</java_opts>
<java_opts>XX:MaxPermSize=256M</java_opts>
<java_opts>XX:NewSize=512M</java_opts>
<java_opts>XX:MaxNewSize=512M</java_opts>
</java>
</data>
use XML::Simple qw(:strict XMLout);
my $java_opts_X = '-Xmx2g -Xms2g -XX:PermSize=256M -XX:MaxPermSize=256M -XX:NewSize=512M -XX:MaxNewSize=512M';
print XMLout { java => [ { java_opts => [ grep $_, split qr/[- ]/, $java_opts_X ] } ] },
KeyAttr => undef, RootName => 'data';END
<data>
<java>
<java_opts>Xmx2g</java_opts>
<java_opts>Xms2g</java_opts>
<java_opts>XX:PermSize=256M</java_opts>
<java_opts>XX:MaxPermSize=256M</java_opts>
<java_opts>XX:NewSize=512M</java_opts>
<java_opts>XX:MaxNewSize=512M</java_opts>
</java>
</data>
Hey super, danke! hat wunderbar geklappt:)