2011-09-12 63 views
2

一个C#控制是否有显示通过XSLT C#的控制的一种方式?显示通过XSLT

我想了很多来处理这个,但我不能将值传递给控制。

下面是我试图呈现出来

<xsl:text disable-output-escaping="yes">&lt;Control:Content runat="server" contenttype="&lt;xsl:value-of select="subnode/text()"/&gt;" /&gt;</xsl:text> 

这里控制应该生成如图所示的样本..:对于参数“的contentType”值应动态传递...

<Control:Content runat="server" contenttype="ABC123" /> 

请帮帮我。

+0

好问题,+1。请记住DOE几乎是不必要的,应尽可能地避免它,因为它破坏了XSLT架构模型。 –

+0

你将如何处理转换的结果? –

回答

2

对于此,您不需要(总是避免使用)DOE。

这里是一个整洁的解决方案,只是用<xsl:output method="text">

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="text"/> 

<xsl:template match="/*"> 
    <xsl:text>&lt;Control:Content runat="server" contenttype="</xsl:text> 
    <xsl:value-of select="/subnode"/> 
    <xsl:text>" /&gt;</xsl:text> 
</xsl:template> 
</xsl:stylesheet> 

当这一转型是这个XML文档施加:

<subnode>html</subnode> 

想要的,正确的输出产生

<Control:Content runat="server" contenttype="html" /> 
+0

这是伟大的Dimitre ..按预期工作。 –

+0

@Siva Charan:不客气。 –

1

我们在工作时间使用这种技术,但是,我们的控制转换成XML第一那么我们使用XSLT来呈现它的页面。

+0

感谢您的回复。在我的情况下,它不会以这种方式工作。由于内容已经发布到XML,因此目前无法处理。所以当XML呈现时,我应该通过将值传递给页面上的控件和显示来处理。 –