Return to xml_to_loncapa.pm CVS log | Up to [LON-CAPA] / loncom / homework / cleanxml |
version 1.2, 2015/12/18 22:08:51 | version 1.4, 2016/01/05 18:51:08 |
---|---|
Line 49 my @simple_data = ('polygon', 'rectangle | Line 49 my @simple_data = ('polygon', 'rectangle |
my @inline_responses = ('stringresponse','optionresponse','numericalresponse','formularesponse','mathresponse','organicresponse','reactionresponse','customresponse','externalresponse'); | my @inline_responses = ('stringresponse','optionresponse','numericalresponse','formularesponse','mathresponse','organicresponse','reactionresponse','customresponse','externalresponse'); |
# see http://www.w3.org/TR/html-polyglot/#empty-elements | |
# and http://tiffanybbrown.com/2011/03/23/html5-does-not-allow-self-closing-tags/ | |
# HTML elements that do not have an empty content, and must never use a self-closing tag: | |
my @non_empty_html = ('title','style','script','noscript','body','section','header','footer','article','aside','nav','h1','h2','h3','h4','h5','h6','div','p','li','dt','dd','caption','td','th','span','a','em','strong','b','i','sup','sub','pre','code','kbd','samp','cite','q','tt','ins','del','var','small','big','address','blockquote','bdo','ruby','rb','rp','rt','rtc','figure','figcaption','object','applet','video','audio','canvas','label','option','textarea','fieldset','legend','button','iframe'); | |
# Converts a file and return the modified contents | # Converts a file and return the modified contents |
sub convert_file { | sub convert_file { |
Line 95 sub node_to_string { | Line 100 sub node_to_string { |
$s .= escape_attribute($attribute->nodeValue); | $s .= escape_attribute($attribute->nodeValue); |
$s .= '"'; | $s .= '"'; |
} | } |
if ($node->hasChildNodes()) { | if ($node->hasChildNodes() || string_in_array(\@non_empty_html, $tag)) { |
$s .= '>'; | $s .= '>'; |
foreach my $child ($node->childNodes) { | foreach my $child ($node->childNodes) { |
$s .= node_to_string($child); | $s .= node_to_string($child); |