Anzeige: united-domains - Die ganze Welt der Domains
Einfache & schnelle Domain-Registrierung zu fairen Preisen ohne Einrichtungsgebühren. Mehr als 250 Domain-Endungen aus einer Hand inklusive E-Mail- & Web-Weiterleitung. Einzigartiges Domain-Portfolio zur bequemen & sicheren Verwaltung Ihrer Domain-Namen.
Jetzt Domain-Check bei united-domains!
XML erweitern mit Perl
Autor: naeko
Datum: 18.07.2008 14:53:55
Hallo,
ich habe eine Frage:
ich hab eine XML-Datei, z.B.
<root>
  <element1>hallo</element1>
</root>
jetzt möchte ich einen Perl-Script aufrufen mit einem Parameter, welcher mir dann meine Xml-Datei um diesen Parameter erweitert, also:
Aufruf: perl myPerl.pl -param "test"
XML:
<root>
<element1>hallo</element1>
<element1>test</element1>
</root>
ruf ich danach noch mal perl-script mit parameter "blablabla" wird die XML-Datei entsprechend erweitert:
<root>
<element1>hallo</element1>
<element1>text</element1>
<element1>blablabla</element1>
</root>
usw.
hat einer ne Idee wie ichs machen kann.............hab nicht mal einen Ansatz
Re: XML erweitern mit Perl
Autor: moll
Datum: 22.07.2008 09:59:32
> Hallo,
> ich habe eine Frage:
> ich hab eine XML-Datei, z.B.
> <root>
> 
> <element1>hallo</element1>
> </root>
>
> jetzt möchte ich einen Perl-Script aufrufen mit
> einem Parameter, welcher mir dann meine Xml-Datei
> um diesen Parameter erweitert, also:
> Aufruf: perl myPerl.pl -param "test"
> XML:
> <root>
> <element1>hallo</element1>
> <element1>test</element1>
> </root>
> ruf ich danach noch mal perl-script mit parameter
> "blablabla" wird die XML-Datei entsprechend
> erweitert:
> <root>
> <element1>hallo</element1>
> <element1>text</element1>
> <element1>blablabla</element1>
> </root>
> usw.
> hat einer ne Idee wie ichs machen
> kann.............hab nicht mal einen Ansatz
Hallo,
habe das mal in einen kleinen Skript umgesetzt:
#!/usr/bin/perl -w
use CGI qw(:standard);
BEGIN {
  use CGI::Carp qw(carpout fatalsToBrowser);
  open LOG,">>test.log";
  carpout(*LOG);
}
my $xmlfile = "myfile.xml";
my $cgi = new CGI;
my $param = $cgi->param('param') or undef;
print "Content-type: text/xml\n\n";
my @data;
if (-f $xmlfile ) {
  open (IN, "< $xmlfile") or die "Kann $xmlfile nicht öffnen!\n";
  while (<IN>){
      push @data, $_;
  }
  close (IN);
} else {
  @data = ("<root>\n","<element1>Hallo</element1>\n","</root>\n");
}
open (OUT, "> $xmlfile");
for (@data){
  if($param && /<\/root/){
      my $newelem = "<element1>$param</element1>\n";
      print OUT $newelem;
      print $newelem;
  }
  print OUT $_;
  print $_;
}
close (OUT);
#
#
1;
Grüße Matthias