Hi,I've problem in multilevel tag closing,i want to close the tags form the inner level then come to close its outer level
<p_normal><list-bull>
<p_list-bull(1)>Use Microsoft Windows accessibility options to:
<p_list-simple(2)>– Magnify the display
<p_list-simple(2)>– Change the size of text and icons
<p_list-simple(2)>– Convert the text displayed into speech (i.e. narrator)
<p_list-simple(2)>– Change the contrast
<p_list-simple(2)>– Display an onscreen keyboard
<p_list-simple(2)>– Convert the mouse for left-handed use.
<p_list-bull(1)>Deliver learning through an audio podcast rather than written handouts for visually impaired learners.
<p_list-bull(1)>Increase the character size on handouts for visually impaired learners.
<p_list-bull(1)>Adjust background colours and fonts to assist dyslexic learners.
my output should be like the below code
<list list-type="bullet">
<list-item><p>Use Microsoft Windows accessibility options to:
<list list-type="simple">
<list-item><p>– Magnify the display</p></list-item>
<list-item><p>– Change the size of text and icons</p></list-item>
<list-item><p>– Convert the text displayed into speech (i.e. narrator)</p></list-item>
<list-item><p>– Change the contrast</p></list-item>
<list-item><p>– Display an onscreen keyboard</p></list-item>
<list-item><p>– Convert the mouse for left-handed use.</p></list-item>
</list></p></list-item>
<list-item><p>Deliver learning through an audio podcast rather than written handouts for visually impaired learners.</p></list-item>
<list-item><p>Increase the character size on handouts for visually impaired learners.</p></list-item>
<list-item><p>Adjust background colours and fonts to assist dyslexic learners.</p></list-item>
<list-item><p><xref ref-type="page" id="page_13"/>Provide feedback on written work using the comments facility and track changes rather than handwritten notes, so that the learners can change character size or use a text to speech application to hear feedback.</p></list-item>
</list>
i tried the below code but i gives single item list only i d't know where its wrong pls correct my mistake
use strict;
my $inputfile = $ARGV[0];
open (IN,"$inputfile") || die ("Can't open the input file for reading");
undef $/;
my $str = <IN>;
while($str =~ /<list-(bull)>(?:(?:(?!<\/list-bull>).)*)<\/list-\1>/sgi)
{
$str =~ s#<list-(bull)>(?:(?:(?!<\/list-bull>).)*)<\/list-\1>#&List_find($&)#sgie;
}
sub List_find
{
my $line = @_[0];
my $currentlevel = 0;
while($line =~ /^[\s\S]*?<(P_list-(\w+)\((\d+)\))>(.*?)<\/\1>\s*/si)
{
my ($tag, $kind, $level, $text) = ($1, $2, $3, $4);
if ($currentlevel < $level) {
while($currentlevel < $level) {
$line = "\n<list list-type=\"$kind\">\n<list-item><p>";
$currentlevel++;
}
} elsif ($currentlevel > $level) {
while($currentlevel > $level) {
$currentlevel--;
$line ="</p></list-item>\n</list>\n";
}
$line = "</p></list-item>\n<list-item><p>";
} else {
$line = "</p></list-item>\n<list-item><p>";
}
$line .= $text;
# print $line;
}
while($currentlevel > 0) {
$currentlevel--;
$line .= "</p></list-item>\n</list>\n";
}
#print $line;
return "$line";
}
open (OUT,">$inputfile\.xml") || die ("Can't open the output file for writing");
print OUT $str;
close (OUT); pls consider my problem