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

本文介绍了如何在XSLT中使用.NET代码实现更复杂的逻辑处理,包括在XSL文档中调用C#等.NET语言代码的具体方法及ASP.NET对XSLT的支持方式。此外还提供了XSLT测试和计时的实用工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值