Hi,This is the code I used:
#main script
#!/usr/bin/perl
########################################
require "sms_lib.pl";
$doc=&MakeParser();
&MakeUser("1234",$doc);
&GetPasswd("1234",$doc);
&SetPasswd("1234","bla",$doc);
&PrintSTOUT($doc);
&PrintFile($doc);
#sms_lib.pl
#!/usr/bin/perl
#####################################################################
use XML::Xerces;
use XML::Xerces::DOMParse;
$XML_FILE="sms.xml";
$XML_NODE_ROOT="sms";
$XML_NODE_STUDENT="student";
$XML_NODE_MBR="mbr";
$XML_NODE_PASSWD="passwd";
$XML_NODE_NAME="ime";
$XML_NODE_SURNAME="prezime";
$XML_NODE_DEPARTMENT="smjer";
$XML_NODE_YEAR="godina";
$XML_NODE_BONUS="izborni";
$XML_NODE_TELEPHONE="tel";
$XML_NODE_SERVICE="sms_service";
$XML_TEST_FILE="out.xml";
$UNDEF="UNDEF";
sub GetPasswd {
my($mbr,$doc) = @_;
my $root= $doc->getDocumentElement();
my $studenti= $doc->getElementsByTagName($XML_NODE_STUDENT);
my $n= $studenti->getLength();
for (my $i=0; $i<$n; $i++){
my $student = $studenti->item($i);
my $passwd_l= $student->getElementsByTagName($XML_NODE_PASSWD);
my $mbr_loc_l= $student->getElementsByTagName($XML_NODE_MBR);
my $passwd= $passwd_l->item(0);
my $mbr_loc= $mbr_loc_l->item(0);
my $passwd_text= ($passwd->getFirstChild())->getNodeValue();
my $mbr_loc_text= ($mbr_loc->getFirstChild())->getNodeValue();
if ($mbr_loc_text == $mbr){
return $passwd_text
}
}
return 0;
}
sub SetPasswd {
my($mbr,$passwd,$doc) = @_;
my $root= $doc->getDocumentElement();
my $studenti= $doc->getElementsByTagName($XML_NODE_STUDENT);
my $n= $studenti->getLength();
for (my $i=0; $i<$n; $i++){
my $student = $studenti->item($i);
my $mbr_loc_l= $student->getElementsByTagName($XML_NODE_MBR);
my $mbr_loc= $mbr_loc_l->item(0);
my $mbr_loc_text= ($mbr_loc->getFirstChild())->getNodeValue();
my $passwd_loc=
($student->getElementsByTagName($XML_NODE_PASSWD))->item(0);
if ($mbr_loc_text == $mbr){
($passwd_loc->getFirstChild())->setNodeValue($passwd);
return ($passwd_loc->getFirstChild())->getNodeValue();
}
}
return 0;
}
sub MakeUser {
my($mbr, $doc) = @_;
my $root =$doc->getDocumentElement();
my $user = $doc->createElement($XML_NODE_STUDENT);
&_MakeMBR($doc,$user,$mbr);
$root->appendChild($user);
#test
&PrintSTOUT($doc);
}
sub MakeParser {
my $parser = XML::Xerces::DOMParser->new();
$parser->setToCreateXMLDeclTypeNode(1);
$parser->parse(XML::Xerces::LocalFileInputSource->new($XML_FILE));
my $doc = $parser->getDocument();
return $doc
}
sub PrintSTOUT {
my ($doc) = @_;
XML::Xerces::DOMParse::unformat ($doc);
XML::Xerces::DOMParse::format ($doc);
XML::Xerces::DOMParse::print (\*STDOUT, $doc);
}
sub PrintFile {
my ($doc) = @_;
my $string = $doc->serialize();
open FP, $XML_TEST_FILE;
print FP $string;
}
Now, PrintSTOUT works, but PrintFile does not.
I would be grateful if you helped...
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]