0

私の XML には、スタイルが含まれています。XslCompiledTransform Transform の出力は、これらのスタイル タグを持たない HTML になります。XslCompiledTransform にそれらを保持するように指示する方法はありますか? または XslCompiledTransform はデフォルトでそれらを保持する必要がありますか?

ここに私のxmlがあります

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

私のxsltは要素全体を引き出すだけです

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

これが私のC#です。デフォルトが適用されている以外は何もありません:

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

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

私が xslt からスタイリングを行っていない理由は、ブロックにスタイルが適用され、ランダムなテキストが混在している可能性があるためです。段落内の特定の単語をスタイリングしています。

4

1 に答える 1

1

XSLT コード

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

要素の (マークアップ) コンテンツを実際にコピーするわけではありません<codeSnippetFull>テキストノード<xsl:value-of>の作成に使用されます。Value-of は、選択したノードを文字列に変換します。要素の文字列値は、選択した要素の子孫であるテキスト ノードを連結したものです。ノード セットの文字列値 (たとえば、選択された複数の要素) は、セット内の最初のノードの文字列値です。

XSLTで要素をコピーするには、使用できます

  1. <xs:copy>選択したノードをコピーしますが、その属性や子はコピーしません
  2. <xs:copy-of>選択した XML フラグメント全体 (= すべての子孫と属性も) をコピーします。
  3. ID テンプレート、つまり再帰的なテンプレート<xs:copy>
于 2011-05-04T10:26:59.300 に答える