version 1.9, 2016/01/21 22:09:38
|
version 1.10, 2016/11/10 19:48:22
|
Line 136 sub post_xml {
|
Line 136 sub post_xml {
|
|
|
fix_empty_lc_elements($root); |
fix_empty_lc_elements($root); |
|
|
|
reduce_empty_p($root); |
|
|
lowercase_attribute_values($root); |
lowercase_attribute_values($root); |
|
|
replace_numericalresponse_unit_attribute($root); |
replace_numericalresponse_unit_attribute($root); |
Line 2268 sub fix_empty_lc_elements {
|
Line 2270 sub fix_empty_lc_elements {
|
} |
} |
} |
} |
} |
} |
|
|
|
# remove consecutive empty paragraphs (they will not show anyway) |
|
sub reduce_empty_p { |
|
my ($node) = @_; |
|
my $next; |
|
for (my $child=$node->firstChild; defined $child; $child=$next) { |
|
$next = $child->nextSibling; |
|
while (defined $next && $next->nodeType == XML_TEXT_NODE && $next->nodeValue =~ /^[ \t\f\n\r]*$/) { |
|
$next = $next->nextSibling; |
|
} |
|
if ($child->nodeType == XML_ELEMENT_NODE && $child->nodeName eq 'p' && defined $next && |
|
$next->nodeType == XML_ELEMENT_NODE && $next->nodeName eq 'p') { |
|
my $first = $child->firstChild; |
|
if (!defined $first || (!defined $first->nextSibling && |
|
$first->nodeType == XML_TEXT_NODE && $first->nodeValue =~ /^[ \t\f\n\r]*$/)) { |
|
$first = $next->firstChild; |
|
if (!defined $first || (!defined $first->nextSibling && |
|
$first->nodeType == XML_TEXT_NODE && $first->nodeValue =~ /^[ \t\f\n\r]*$/)) { |
|
$node->removeChild($child); |
|
} |
|
} |
|
} |
|
if ($child->nodeType == XML_ELEMENT_NODE) { |
|
reduce_empty_p($child); |
|
} |
|
} |
|
} |
|
|
# turn some attribute values into lowercase when they should be |
# turn some attribute values into lowercase when they should be |
sub lowercase_attribute_values { |
sub lowercase_attribute_values { |