XML-Liberal
view release on metacpan or search on metacpan
t/bad/BAD-chr-28.xml
t/bad/BAD-chr-29.xml
t/bad/BAD-chr-3.xml
t/bad/BAD-chr-30.xml
t/bad/BAD-chr-31.xml
t/bad/BAD-chr-4.xml
t/bad/BAD-chr-5.xml
t/bad/BAD-chr-6.xml
t/bad/BAD-chr-7.xml
t/bad/BAD-chr-8.xml
t/bad/BAD-control-cdata.xml
t/bad/BAD-control.xml
t/bad/BAD-declaration.xml
t/bad/BAD-html.xml
t/bad/BAD-html2.xml
t/bad/BAD-html3.xml
t/bad/BAD-lowascii.xml
t/bad/BAD-nested-cdata.xml
t/bad/BAD-trailing-both.xml
t/bad/BAD-trailing-doctype.xml
t/bad/BAD-trailing-elements.xml
t/bad/BAD-unclosed.xml
t/bad/BAD-undeclared-ns-element.xml
t/bad/BAD-undeclared-ns.xml
t/bad/BAD-unquoted-nbsp.xml
t/bad/BAD-unquoted.xml
t/bad/BAD-xhtml-empty-element-tag.xml
t/bad/BAD-xhtml-empty-element-tag2.xml
t/good/GOOD-chr-28.xml
t/good/GOOD-chr-29.xml
t/good/GOOD-chr-3.xml
t/good/GOOD-chr-30.xml
t/good/GOOD-chr-31.xml
t/good/GOOD-chr-4.xml
t/good/GOOD-chr-5.xml
t/good/GOOD-chr-6.xml
t/good/GOOD-chr-7.xml
t/good/GOOD-chr-8.xml
t/good/GOOD-control-cdata.xml
t/good/GOOD-control.xml
t/good/GOOD-declaration.xml
t/good/GOOD-html.xml
t/good/GOOD-html2.xml
t/good/GOOD-html3.xml
t/good/GOOD-lowascii.xml
t/good/GOOD-nested-cdata.xml
t/good/GOOD-trailing-both.xml
t/good/GOOD-trailing-doctype.xml
t/good/GOOD-trailing-elements.xml
t/good/GOOD-unclosed.xml
t/good/GOOD-undeclared-ns-element.xml
t/good/GOOD-undeclared-ns.xml
t/good/GOOD-unquoted-nbsp.xml
t/good/GOOD-unquoted.xml
t/good/GOOD-xhtml-empty-element-tag.xml
t/good/GOOD-xhtml-empty-element-tag2.xml
lib/XML/Liberal/Remedy/NestedCDATA.pm view on Meta::CPAN
use HTML::Entities qw( encode_entities );
sub apply {
my $class = shift;
my($driver, $error, $xml_ref) = @_;
return 0 if $error->message !~ /^parser error : Opening and ending tag mismatch:/;
while ($$xml_ref =~ /(?<= <!\[CDATA\[ ) (.*? \]\]> )/xmsg) {
my ($cdata, $start, $end) = ($1, $-[1], $+[1]);
next if $cdata !~ /<!\[CDATA\[/;
my $escaped = encode_entities($cdata, '<>&');
substr($$xml_ref, $start, $end - $start) = "]]>$escaped<![CDATA[";
return 1;
}
return 0;
}
1;
( run in 0.263 second using v1.01-cache-2.11-cpan-8d75d55dd25 )