2010-07-12 10 views
-1

Je vous écris le script Perl suivant (DOM) (ci-dessous) afin de créer le DOM XML suivant:Comment enregistrer une arborescence DOM XML dans un nouveau document à l'aide de XML :: LibXML de Perl?

<books> 
<computer/> 
</books> 

Comment puis-je enregistrer la sortie XML dans le fichier test.xml? J'ai essayé de sauver le XML avec

$doc->printToFile('/tmp/test.xml'); 

mais je reçois:

can't locate object method "printToFile" via package "XML::LibXML::Document"

Le script Perl:

#!/usr/bin/perl 

use XML::LibXML; 
my $doc; 
$doc = XML::LibXML::Document->new; 

my $objbooks = $doc->createElement('books'); 
$doc->appendChild($objbooks); 

my $objcomputer = $doc->createElement('computer'); 
$objbooks->appendChild($objcomputer); 

Répondre

3

Je pense que vous voulez XML::LibXML::Document::toFile:

$state = $doc->toFile($filename, $format); 

Cette fonction est similaire à toString(), mais elle écrit le document directement dans un système de fichiers. Cette fonction est très utile, si vous avez besoin de stocker des documents volumineux.

Le paramètre de format a le même comportement que dans toString().

+0

@yael, vous obtenez un message d'erreur? –

+0

salut encore, j'ajoute le $ doc-> toFile ('/ tmp/test.xml'); , après cela, test.xml a été créé mais sans les lignes d'élément comme .... ?? Pourquoi – yael