2009-06-25 18 views
1

Ich versuche nur, die XML-Wie erzeuge ich XML mit Perls XML :: Simple?

use XML::Simple; 

my %element = ("a" => "10" , 
       "b" => "20" ,); 

my $xs = new XML::Simple(); 
my $ref = $xs->XMLin(%element); 
my $xml = $xs->XMLout($ref); 
print $xml; 

Was auf diesem Code falsch ist, zu schaffen? (Dies ist wurde gelöst)

use XML::Simple; 

my %element = ("a" => "10" , 
       "b" => "20" ,); 

my $xs = new XML::Simple(); 
my $xml = $xs->XMLout(\%element); 
print $xml; 

Dies erzeugt die folgende Ausgabe:

<opt a="10" b="20" /> 

Aber was würde ich wirklich zu bekommen, ist dies:

<a> 10 </a> 
<b> 20 </b> 

Wie kann ich das erreichen ?

+1

Warum hast du dieses Community-Wiki erstellt? Warum weigern Sie sich, die Dokumentation zu lesen? – innaM

+0

durch irrtümlich ich Community Wiki gemacht .. Wie Rollback zu .. – joe

Antwort

4

XMLin nimmt XML und wandelt es in eine Perl-Datenstruktur um.

XMLout verwendet eine Perl-Datenstruktur und wandelt sie in XML um.

Sie versuchen, eine Perl-Datenstruktur an XMLin zu füttern und das Ergebnis an XMLout zu übergeben.

Haben Sie darüber nachgedacht, die documentation zu lesen?


Update: Die Dokumentation (ja, wir wissen, dass es langweilig ist) bietet eine ganze Reihe von Optionen, die Sie XML::Simple::new() passieren können. Einer von ihnen ist NoAttr => 1. Vielleicht möchten Sie check that one out, aber ein Blick auf die anderen (von denen einige als "wichtig" markiert sind) wird nicht schaden.

2

Sie verwenden es rückwärts. XMLin ist ein XML-Decoder (nimmt ein XML-kodiertes Dokument, gibt Perl-Strukturen zurück); XMLout ist ein XML-Encoder (nimmt Perl-Strukturen, gibt ein XML-kodiertes Dokument zurück).

+0

So oder so kann ich nicht erreichen, was ich will. Ich möchte nur das XML-Element basierend auf Hash-Array erstellen – joe

Verwandte Themen