XSLT学习笔记--NET Framework对XSLT的支持(2)

 

1.    XSL文档中调用.net代码

XSLT中使用<msxsl:script>标签可以包含C#VB.NET或其他.NET语言的代码。XslTransform类将把这些脚本语言转换为中间语言。另外也可以在script块中简单地调用现有的商业组件而不是把商业逻辑包含在XSL文档中。

例如,如果我们希望在例1的上方显示今天的日期。下面的XSL文件演示了我们调用XSL中定义的服本方法所需做出的改变。更改的地方使用了粗体。

在“msxsl:script”上层,需要引用“urn:schemas-microsoft-com:xslt”命名空间。所有用户定义的脚本需要在“Testing”前缀的下方。请参看参考一节获得更多的使用<msxsl:script>的信息。

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
     xmlns:msxsl
="urn:schemas-microsoft-com:xslt"
     xmlns:user
="urn:my-scripts">
<msxsl:script language="C#" implements-prefix="Testing">
     
<![CDATA[
     public string getDate(){
          return (DateTime.Today.ToShortDateString());
     }
     
]]>
</msxsl:script>
<xsl:output method="html" encoding="utf-8" />
<xsl:template match="/PrakashFinancial">
     
<xsl:text>
          List of Employees :
     
</xsl:text>
     
<xsl:value-of select="user:getDate()"/>
     
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="/PrakashFinancial/Employee">
     
<xsl:value-of select="@Name"/>
</xsl:template>
</xsl:stylesheet>

 

注意:XSLT支持很多内建的方法,首先需要看看是否这些任务可以通过XSLT已有的方法来完成。我们推荐使用脚本来做一些复杂的事情,以扩展XSLT的功能,或用现有组件重用一些商业逻辑。

 

2.    ASP.NETXSLT的支持

如果你有XML文档和XSL文档,并希望在服务器端处理XSLT并返回最终结果,可以使用ASP.NET现有的web server控件。<asp:xml>可以正确地完成这个功能。<asp:xml>web server控件可以对XML文档和XSL文档进行转换并在浏览器显示结果。

ASP.NET使用XML控件非常容易,按照下面步骤操作:

3.a 创建一个ASP.NET web应用程序

3.b 拷贝上面的XMLXSL文件到“SampleData.XML”和“SampleTransform..XSL”文件中并把它们拷贝到web应用程序的根目录中。

3.c 拖动【工具箱】中的【WebForm controls】栏下的【Xml】控件到WebForm1.aspx中。

3.d PageLoad事件中添加如下代码:(webform1.aspx..cs文件)

Xml1.DocumentSource  = "SampleData.XML";
Xml1.TransformSource = "SampleTransform.XSL

3.e 运行web页面,你将看到转换在服务器端被ASP.NET执行,并输出了一个web页面。

 

XSLT测试和计时

1.       MSXSL.EXE微软提供了一个简单的XSLT工具(MSXSL.exe),你可以在

http://www.microsoft.com/downloads/details.aspx?displaylang=en&familyid=2fb55371-c94e-4373-b0e9-db4816552e41 中自由下载。这个工具使用-t选项进行转换计时。

示例代码:msxsl.exe SampleXML.xml SampleXSL.xsl -o Output1.html –t

以上命令对SampleXML.xml文件进行转换(需要通过使用SampleXSL.xsl)并在Output1.html中输出。以上命令也进行了计时(-t option

2.       Internet Explorer>=5.x):你可以使用IEVersion>5.x)通过在XML文档中引用XSLT来进行转换。用它来测试XSL文件非常棒。

参考资料

到这个网页下方的References这一节自己去看吧,懒得转换了

http://www.asp101.com/articles/jayram/xslt/default.asp

posted @ 2008-03-12 00:46  abatei  阅读(899)  评论(1编辑  收藏  举报