Question

Mon XML a un style. La sortie de la transformation XSLCompiledTransform entraîne un HTML qui n'a pas ces balises de style. Existe-t-il un moyen de dire au XSLCompiledTransform pour les garder? Ou le XSLCompiledTransform devrait-il les garder par défaut?

Voici mon XML

> <codeSnippetFull>
>         <span class="kwrd">event</span> 
>         OnCreate {
>         <span class="kwrd">if</span>
>              (Count == 0)
>                   AddE(D); <span class="rem">//  comment </span>
>         }
>        </codeSnippetFull>

mon xslt sort juste l'élément entier

         <xsl:value-of select="THelpDocument/HelpBody/example/codeSnippetFull"/>

Voici mon C #, je n'ai rien d'autre que les valeurs par défaut appliquées:

 // Load the style sheet. 
 XslCompiledTransform xslt = new XslCompiledTransform();
 xslt.Load(args[0]);

......
         xslt.Transform(xmlFileName, Path.Combine(htmlOutputPath, Path.GetFileNameWithoutExtension(xmlFileName) + ".html"));

La raison pour laquelle je ne fais pas le style du XSLT est que le bloc pourrait avoir et une quantité de styles appliqués, mélangés avec du texte aléatoire. Il s'agit de certains mots dans les paragraphes.

Était-ce utile?

La solution

Votre code XSLT

<xsl:value-of select="THelpDocument/HelpBody/example/codeSnippetFull"/>

ne copie pas réellement le contenu (marquage) du <codeSnippetFull> élément. <xsl:value-of> est utilisé pour créer nœuds de texte. Valeur convertit le nœud sélectionné en une chaîne. La valeur de chaîne d'un élément est la concaténation des nœuds de texte qui sont des descendants de l'élément sélectionné. La valeur de chaîne d'un ensemble de nœuds (par exemple: plusieurs éléments sélectionnés) est la valeur de chaîne du premier nœud dans l'ensemble.

Pour copier des éléments dans XSLT, vous pouvez utiliser

  1. <xs:copy> qui copie le nœud sélectionné mais pas ses attributs ou ses enfants
  2. <xs:copy-of> qui copie l'ensemble du fragment XML sélectionné (= également tous les descendants et attributs)
  3. un modèle d'identité, c'est-à-dire un modèle récursif avec <xs:copy>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top