Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何复制元素内容而不仅仅是字符串?_C#_Xml_Xslt_Xslcompiledtransform - Fatal编程技术网

C# 如何复制元素内容而不仅仅是字符串?

C# 如何复制元素内容而不仅仅是字符串?,c#,xml,xslt,xslcompiledtransform,C#,Xml,Xslt,Xslcompiledtransform,我的XML中确实有一些样式。 XslCompiledTransform转换的输出将生成没有这些样式标记的HTML。 有没有办法告诉XslCompiledTransform保留它们?还是XslCompiledTransform应该默认保留它们 这是我的xml > <codeSnippetFull> > <span class="kwrd">event</span> > OnCreate { >

我的XML中确实有一些样式。 XslCompiledTransform转换的输出将生成没有这些样式标记的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进行样式设计的原因是,块可能会有和应用的样式数量,与随机文本混合在一起。它在段落中设置某些单词的样式。

您的XSLT代码

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

不会实际复制
元素的(标记)内容<代码>用于创建文本节点。值将选定节点转换为字符串。元素的字符串值是作为选定元素的后代的文本节点的串联。节点集的字符串值(例如:选择了多个元素)是集中第一个节点的字符串值

要复制XSLT中的元素,可以使用

  • 复制选定节点但不复制其属性或子节点的
  • 复制整个选定XML片段(=以及所有子体和属性)的
  • 标识模板,即带有

  • Jasso,很明显,我完全走错了方向。谢谢,xsl:copy of works a treat.+1正确答案。尽管此“节点集的字符串值(例如:选择的多个元素)是集合中第一个节点的字符串值”,但仅对XSLT 1.0有效
     // Load the style sheet. 
     XslCompiledTransform xslt = new XslCompiledTransform();
     xslt.Load(args[0]);
    
    ......
             xslt.Transform(xmlFileName, Path.Combine(htmlOutputPath, Path.GetFileNameWithoutExtension(xmlFileName) + ".html"));
    
    <xsl:value-of select="THelpDocument/HelpBody/example/codeSnippetFull"/>