selfhtml.de - Alles für den Webmaster!

 

Anzeige: united-domains - Die ganze Welt der Domains

united domains - jetzt Wunsch-Domain sichern!

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