2
Je veux qu'il y ait des sections CDATA dans mon XML de sortie. J'ai essayé d'utiliser l'attribut "cdata-sections-element" de xsl: output. Cependant, je ne reçois pas de CDATA dans ma sortie.Utiliser XslCompiledTransform avec des éléments de section cdata
using System;
using System.Xml;
using System.Xml.Xsl;
using System.IO;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string stylesheet =
@"<xsl:stylesheet version=""1.0"" xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"">
<xsl:output xmlns:t=""temp-uri"" cdata-section-elements=""t:text"" method=""xml""/>
<xsl:template match=""/"">
<text xmlns=""temp-uri""><xsl:value-of select="".""/></text>
</xsl:template>
</xsl:stylesheet>
";
XmlReader reader = XmlReader.Create(new StringReader(stylesheet));
XslCompiledTransform t = new XslCompiledTransform(true);
t.Load(reader);
XmlReader input = XmlReader.Create(new StringReader("<foo><![CDATA[<hello]]></foo>"));
StringBuilder sb = new StringBuilder();
XmlWriter results = XmlWriter.Create(new StringWriter(sb));
t.Transform(input, null, results);
Console.WriteLine(sb.ToString());
Console.ReadLine();
}
}
}
La production réelle
<?xml version="1.0" encoding="utf-16"?><text xmlns="temp-uri"><hello</text>
sortie requis
<?xml version="1.0" encoding="utf-16"?><text xmlns="temp-uri"><!CDATA[<hello]]></text>
Qu'est-ce que je manque ici?