2011-11-15 2 views
0

Мне нужно отправить XML-файл как тело письма. Я хочу преобразовать XML в простую строку, поместить ее в тело и отправить электронное письмо. Я помню, что раньше делал это в C#, загружая файл как PlainText в RichTextBox.Как преобразовать XML в строку в Perl

my $xmlfilename; 
my $myxml; 
# XML TO STRING? 
my $email = Email::Simple->create(
header => [ 
To  => '"AB <[email protected]"', 
From => '"CD" <[email protected]>', 
Subject => "TEST", 
], 
body => $myxml, 
); 
sendmail($email); 

Любая идея?

ответ

5

Если вы читали XML данные из файла, то это будет «просто строка». Я не уверен, что такое путаница.

my $xmlfilename; 

open my $fh, $xmlfilename or die "Can't open $xmlfilename: $!"; 

my $myxml = do { local $/; <$fh>; }; 

my $email = Email::Simple->create(
    header => [ 
     To  => '"AB <[email protected]"', 
     From => '"CD" <[email protected]>', 
     Subject => "TEST", 
    ], 
    body => $myxml, 
); 

sendmail($email); 
-1
my $xmlfilename; 
my $myxml; 
open (FILE, '>', "$xmlfilename") or die "$!"; 
while (<FILE>){ 
    $myxml = "$myxml"."$_"; 

} 
close (FILE); 
my $email = Email::Simple->create( 
header => [ 
    To => '"AB <[email protected]"', 
    From => '"CD" <[email protected]>', 
    Subject => "TEST", 
], 
    body => $myxml, 
); 
    sendmail($email); 

или если вы хотите, вы можете разобрать XML с http://metacpan.org/pod/XML::Parser модулем

+0

Могу ли я узнать, где я ошибаюсь (для понижения?) – run

Смежные вопросы