Как создать XML с помощью Perl XML :: Simple? - PullRequest
1 голос
/ 25 июня 2009

Я просто пытаюсь создать XML

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;

Что не так в этом коде?(Это решено)

use XML::Simple;

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

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

Это приводит к следующему выводу:

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

Но что я действительно хотел бы получить это:

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

Как мне этого добиться?

Ответы [ 2 ]

4 голосов
/ 25 июня 2009

XMLin берет XML и преобразует его в структуру данных Perl.

XMLout берет данные в Perl и преобразует их в XML.

Вы пытаетесь передать структуру данных Perl в XMLin и передать результат в XMLout.

Рассматривали ли вы чтение документации ?


Обновление: документация (да, мы знаем, что это скучно) предлагает довольно много опций, которые вы можете передать XML::Simple::new(). Одним из них является NoAttr => 1. Возможно, вы захотите проверить это одно из , но просмотр остальных (некоторые из которых помечены как "важные") не повредит.

2 голосов
/ 25 июня 2009

Вы используете его задом наперед. XMLin - декодер XML (принимает документ в кодировке XML, возвращает структуры Perl); XMLout - это кодировщик XML (принимает структуры Perl, возвращает документ в кодировке XML).

...