foreach $line (@navmod) { #sorting taken out, file now pre-sorted outside this perl routine
chomp($line);
print "$line\n";
print LOG "$line\n";
$linecount++;
print LOG "Line $linecount\n";
#($ParentNodeId, $label, $PrimaryURL, $NavNodeId, $SecondaryURL, $UrlDirName) = split /,/, $line;
($ParentNodeId,$NodeId, $level, $canode, $label, $theme, $template,
$active, $secgrp, $secacc, $ptemp, $stemp, $altlabel, $fragsoff, $canodeid, $f2, $clist1,
$clist2, $clist3, $clist4, $clist5, $clist6, $clist7, $clist8, $clist9, $clist10,
$clist11, $clist12, $clist13) = split /,/, $line;
#get children of root and create sections
if ($ParentNodeId eq 1) {
#add node to %proc_secs
#$proc_secs{$NodeId} = $PrimaryURL;
print LOG "Level eq 1\n";
#print "$label is a Child of a Child\n";
#create section
my $section = "";
my $esec = new XML::Twig::Elt('section',$section);
#need to get label and urkdirname
#label is as per model
#urlDirName is label less spaces
$esec->set_att('label',$label);
$label =~ s/\s//g;
$esec->set_att('urlDirName',$label);
$esec->set_att('active',$active);
$esec->set_att('dSecurityGroup',$secgrp);
$esec->set_att('dDocAccount',$secacc);
$esec->set_att('primaryUrl',$ptemp);
$esec->set_att('secondaryUrl',$stemp);
$esec->set_att('AltLabel',$altlabel);
$esec->set_att('FragmentsOff',$fragsoff);
$esec->set_att('ContentArchitectureNodeId',$canodeid); #this will need changing for real run
$esec->set_att('FragmentsOffSiteLevel',$f2);
$esec->set_att('ContentList_CriteriaMetaData',$clist1);
$esec->set_att('ContentList_ResultCount',$clist2);
$esec->set_att('ContentList_MaxGetSearchResultCount',$clist3);
$esec->set_att('ContentList_RangeMetaDataField',$clist4);
$esec->set_att('ContentList_RangeMin', $clist5);
$esec->set_att('ContentList_RangeMax',$clist6);
$esec->set_att('ContentList_ExtraCriteria',$clist7);
$esec->set_att('ContentList_SortSpec',$clist8);
$esec->set_att('csFragMaxDepth',$clist9);
$esec->set_att('csFragStartNodeId',$clist10);
$esec->set_att('ContentList_Title',$clist11);
$esec->set_att('ContentList_ShowDetailsOff', $clist12);
$esec->set_att('ContentList_OptionalDisplayField',$clist13);
$esec->set_att('nodeId',$NodeId);
$esec->paste('last_child', $root);
print LOG "$esec\n";
$twig->flush;
$twig->print;
}
#get children of children and create sections
if ($ParentNodeId gt 1) {
#get relevant section with a catch all
#need to use get_xpath command
my @sections = $twig->get_xpath('section[@nodeId = "'.$ParentNodeId.'"]');
print "@sections\n";
foreach my $sectioncount (@sections) {
#check for more than one? NodeIds should be unique.
my $numsections = @sections;
print LOG "The number of sections returned is $numsections\n\n\n";
if ($numsections gt 1) {
die "Critical failure at section \n".$sectioncount->sprint."\nMore than one section found with id\n";
}
print LOG " parent node is $sectioncount\n";
print $sectioncount->sprint;
print "\n\n";
#now add the section
my $section = "";
my $esec = new XML::Twig::Elt('section',$section);
print LOG "Level is $level\n";
$esec->set_att('label',$label);
$label =~ s/\s//g;
$esec->set_att('urlDirName',$label);
$esec->set_att('active',$active);
$esec->set_att('dSecurityGroup',$secgrp);
$esec->set_att('dDocAccount',$secacc);
$esec->set_att('primaryUrl',$ptemp);
$esec->set_att('secondaryUrl',$stemp);
$esec->set_att('AltLabel',$altlabel);
$esec->set_att('FragmentsOff',$fragsoff);
$esec->set_att('ContentArchitectureNodeId',$canodeid); #this will need changing for real run
$esec->set_att('FragmentsOffSiteLevel',$f2);
$esec->set_att('ContentList_CriteriaMetaData',$clist1);
$esec->set_att('ContentList_ResultCount',$clist2);
$esec->set_att('ContentList_MaxGetSearchResultCount',$clist3);
$esec->set_att('ContentList_RangeMetaDataField',$clist4);
$esec->set_att('ContentList_RangeMin', $clist5);
$esec->set_att('ContentList_RangeMax',$clist6);
$esec->set_att('ContentList_ExtraCriteria',$clist7);
$esec->set_att('ContentList_SortSpec',$clist8);
$esec->set_att('csFragMaxDepth',$clist9);
$esec->set_att('csFragStartNodeId',$clist10);
$esec->set_att('ContentList_Title',$clist11);
$esec->set_att('ContentList_ShowDetailsOff', $clist12);
$esec->set_att('ContentList_OptionalDisplayField',$clist13);
$esec->set_att('nodeId',$NodeId);
$esec->paste('last_child', $sectioncount);
print LOG "$esec\n";
$twig->flush;
$twig->print;
}
}
}
$twig->print;
#print out xml file
open (OUT, "> $output");
$twig->set_pretty_print( 'nsgmls');
$twig->print(\*OUT);
close OUT;
####
##
##
my @sections = $twig->get_xpath('section[@nodeId = "'.$ParentNodeId.'"]');