zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    jenkins 参数化构建,获取git分支
    maven 历史版本下载
    spring mybatis 多个数据源配置
    springmvc 加载静态文件失败
    java服务覆盖率统计 jacoco ant
    testng监听ISuiteListener
    记录一下这几天遇到的坑(.netcore 代理问题)
    Js获取客户端用户Ip地址
    如何获取AWS的Access Key ID 和 Secret Access Key (Unable to find credentials)
    记录一个EF连接查询的异常:the entity or complex type 'x' cannot be constructed in a linq to entities query
  • 原文地址:https://www.cnblogs.com/abatei/p/1101332.html
Copyright © 2011-2022 走看看