--- loncom/xml/lonxml.pm 2003/01/09 22:45:50 1.221.2.1 +++ loncom/xml/lonxml.pm 2003/01/13 22:20:35 1.221.2.2 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # XML Parser Module # -# $Id: lonxml.pm,v 1.221.2.1 2003/01/09 22:45:50 albertel Exp $ +# $Id: lonxml.pm,v 1.221.2.2 2003/01/13 22:20:35 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -771,7 +771,7 @@ sub inner_xmlparse { if ($token->[0] eq 'E') { &end_tag($stack,$parstack,$token); } - } + } if ($#$pars > -1) { pop @$pars; pop @Apache::lonxml::pwd; @@ -1113,7 +1113,9 @@ sub store_counter { sub get_all_text { my($tag,$pars)= @_; &Apache::lonxml::debug("Got a ".ref($pars)); + my $gotfullstack=1; if (ref($pars) ne 'ARRAY') { + $gotfullstack=0; $pars=[$pars]; } my $depth=0; @@ -1145,7 +1147,16 @@ sub get_all_text { pop(@$pars); pop(@Apache::lonxml::pwd); } - if (($depth >=0) && ($#$pars == 0) ) { $top_empty=1; } + if (($depth >=0) && ($#$pars == 0) ) { &debug("here4");$top_empty=1; } + } + if ($top_empty && $depth >= 0) { + #never found the end tag ran out of text, throw error send back blank + &error('Never found end tag for <'.$tag.'>'); + if ($gotfullstack) { + my $newstring=''.$result; + &Apache::lonxml::newparser($pars,\$newstring); + } + $result=''; } } else { while ($#$pars > -1) {