jo lemen schrieb:
Is there a way in XSL 1.0 to fix the < and > in front of and
after the CDATA section?
<rss version="2.0">
<item>
<title>Title text</title>
<link>URL</link>
<description><![CDATA[description text]]></description>
<pubDate>pubDate</pubDate>
</item>
Isn't this simply a case of XML errouneously encoded as a string? The
generator probably wanted a CDATA section, but not knowing how to do it
inserted a text node, like this:
12:12:30,45 C:\MILU\dev\XSLT-1
# more cdata-unparsed.pl
use strict;
use warnings;
use XML::LibXML;
my $doc = XML::LibXML::Document->new;
my $root = $doc->createElement( 'Urmel');
$doc->setDocumentElement( $root);
my $text = 'Eene & meene <und> miste';
my $node1 = $doc->createElement('eins');
$node1->appendTextNode( "<![CDATA[$text]]>"); # wrong
$root->appendChild( $node1);
my $node2 = $doc->createElement('zwei');
$node2->appendChild( XML::LibXML::CDATASection->new( $text)); # right
$root->appendChild( $node2);
print $doc->serialize(1), "\n";
12:12:47,15 C:\MILU\dev\XSLT-1
# perl cdata-unparsed.pl
<?xml version="1.0"?>
<Urmel>
<eins><![CDATA[Eene & meene <und> miste]]></eins>
<zwei><![CDATA[Eene & meene <und> miste]]></zwei>
</Urmel>
Supposing this error is predictable and reliable, can't this be safely
undone using one simple d-o-e attribute for the element in question?
<xsl:template match="description">
<xsl:copy>
<xsl:value-of select="." disable-output-escaping="yes"/>
</xsl:copy>
</xsl:template>
Michael Ludwig
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--