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