2010-01-12 67 views
0

我使用C#將XML文件轉換爲使用XSLT的HTML。如何使用C#在我的XSLT文件中呈現自定義XSL控件?

我使用擴展對象來渲染自己的代碼:

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl" 
    xmlns:widget="urn:serverTime" 
> 

<xsl:output method="html" indent="yes"/> 

<xsl:template match="/"> 
    <xsl:value-of select="demo:printTime()"/> 
</xsl:template> 

,在我的C#:

XsltArgumentList myList = new XsltArgumentList(); 
myList.AddExtensionObject("demo:serverTime", new ServerTime()); 
transform.Transform(document, myList, writer); 

這完美的作品。但是,我想創建自己的自定義標籤,如:

<demo:printTime /> 

這不起作用:標記打印到輸出而不呈現。我如何使這項工作,使我可以使用我自己的標籤?

回答

1

你不能這樣做。 XSLT不支持「自定義標籤」。

如果您想打印出任何不是文字值的東西,那麼它必須是函數調用的結果,包裝在<xsl:value-of/>中。

+0

所以如果我需要支持這個,我應該創建自己的XSLT解析器和渲染器? – wasigh 2010-01-13 16:39:50

相關問題