From: Arnaud Blancher (Arnaud.Blancher@ungi.net)
Date: 12/02/2003 - 14:36
Bonjour
j'ai un problème avec les caractéres spéciaux dans des sections CDATA
par example
<![CDATA[<]]><![CDATA[br />]]> dans ma feuille xslt
devient
<br />
alors que je cherche a avoir <br />
je ne me tompe pas ?
dans une section <![CDATA[ ]]>
je peux bien mettre tout ce que je veux hormis ]]> sans prendre de
précautions ?
et dans une version plus vieille de redhat, ca marchai tres bien !
voila le script complet
si quelqu'un pouvais me donner des infos pour determiner d'ou viens le
problème
merci d'avance
Arnaud
#!/usr/bin/perl
# used version
# redhat 8
# libxml2-2.5.3-1.i386.rpm
# zlib-devel-1.1.4-4.i386.rpm
# libxml2-devel-2.5.3-1.i386.rpm
# libxslt-1.0.26-1.i386.rpm
# libxslt-devel-1.0.26-1.i386.rpm
# perl 5.8
# XML-LibXSLT-1.52
# XML-LibXML-1.53
# problem whith CDATA section
# <![CDATA[<]]><![CDATA[br />]]> in xslt
# become
# <br />
# in the output
use XML::LibXSLT;
use XML::LibXML;
my $parser = XML::LibXML->new();
my $xslt = XML::LibXSLT->new();
my $xmlsource=<<EOF;
<?xml version="1.0"?>
<xml>
<html chemin="/html_2" position="2"></html>
</xml>
EOF
;
my $xslsource =<<EOF2;
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html"/>
<xsl:template match="xml">
<html>
<xsl:call-template name="XeditHidden" />
</html>
</xsl:template>
<xsl:template name="XeditHidden">
<![CDATA[<]]><![CDATA[br />]]>
</xsl:template>
</xsl:stylesheet>
EOF2
;
#------------------------------------------------------------
# transfomation xml
my $objXml = $parser->parse_string($xmlsource);
my $style = $parser->parse_string($xslsource);
my $stylesheet = $xslt->parse_stylesheet($style);
my $results = $stylesheet->transform($objXml);
my $xmlresult = $stylesheet->output_string($results);
print $xmlresult;
#------------------------------------------------------------
1;
__END__
result:
<html>
<head><meta content="text/html; charset=iso-8859-1"
http-equiv="Content-Type"></head>
<body><br /></body>
</html>
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|