如何将传递节点设置为通过使用 Visual C#.NET 内联 XSLT 脚本函数

创建示例 XML 文件

以下代码粘贴在记事本或其他的文本编辑器中,然后将该文件保存为 Q330602.xml:

<data>10/24/2002</data>

通过使用 Microsoft.NET Framework 类应用 XSLT 转换

<script type="text/javascript"></script>
    
    
  1. 以下代码粘贴在记事本或其他的文本编辑器中,然后保存该文件作为 DotNet.xslt:
    <xsl:transform version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     xmlns:msxsl="urn:schemas-microsoft-com:xslt"
     xmlns:user="http://my_domain_name/my_namespace">
    
    <xsl:output method="xml" omit-xml-declaration="yes"/>
      
     <xsl:template match="/">
        <xsl:value-of select="user:ConvertDate(data)"/>
     </xsl:template>
    
     <msxsl:script implements-prefix="user" language="C#">
        public string ConvertDate(XPathNodeIterator node)
        {
    		DateTime dt = DateTime.Parse(node.Current.Value);
    		return dt.ToString("f");
        }
     </msxsl:script>
    
    </xsl:transform>
  2. 在 Microsoft Visual Studio.NET 中创建新的 ASP.NET Web 名为 DateTimeDotNet 使用 Visual C#.NET 应用程序。
  3. 右键单击 WebForm 1.aspx ,设计器表面,然后单击 查看代码 以编辑 WebForm 1.aspx.cs 类模块。
  4. 使用 指令部分 WebForm 1.aspx.cs 中粘贴以下:
    using System.Xml.Xsl;
    using System.Xml.XPath;
  5. 将以下代码粘贴在 Page _ Load 事件中:
    XPathDocument doc = new XPathDocument(this.MapPath("Q330602.xml"));
    XslTransform transform = new XslTransform();
    transform.Load(this.MapPath("DotNet.xslt"));
    // Transform XML data.
    transform.Transform(doc, null, Response.OutputStream);
    transform.Transform (文档,null,Response.OutputStream);
  6. 将更改保存到 WebForm 1.aspx.cs。
  7. 确保将 Q330602.xml 和 DotNet.xslt 文件创建项目位于同一文件夹中。
  8. 生成 菜单上单击 生成解决方案
  9. 启动 Microsoft Internet Explorer 并打开 WebForm 1.aspx 文件。 为此,指定以下 URL 其中 IISServerName 是 Microsoft Internet Information Services (IIS) 服务器的名称:
    http://IISServerName/DateTimeDotNet/WebForm1.aspx
 

通过使用 MSXML 应用 XSLT 转换

<script type="text/javascript"></script>
  1. 将以下代码粘贴在记事本或其他的文本编辑器中,然后保存该文件作为 Msxml.xslt:
    <?xml version='1.0'?>
    <xsl:stylesheet  version="1.0"
          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
          xmlns:msxsl="urn:schemas-microsoft-com:xslt"
          xmlns:user="http://my_domain_name/my_namespace">
    
    <msxsl:script language="VBScript" implements-prefix="user">
    Function ConvertDate(nodeList)
    	ConvertDate = FormatDateTime( Left(nodeList(0).text, 10),1)
    End Function
    </msxsl:script>
    
    <xsl:template match="/">
       <xsl:value-of select="user:ConvertDate(data)"/>
    </xsl:template>
    
    </xsl:stylesheet>
  2. 创建新的 ASP.NET Web 应用程序项目使用 Visual C#.NET 来命名 DateTimeMSXml。
  3. 项目 菜单上单击 添加引用
  4. COM 选项卡,选择 Microsoft XML、 v 3.0
  5. 单击 选择 ,然后单击 确定
  6. 右键单击 WebForm 1.aspx ,设计器表面,然后单击 查看代码 以编辑 WebForm 1.aspx.cs 类模块。
  7. 将以下代码粘贴到 Page _ Load event:
    MSXML2.DOMDocument doc = new MSXML2.DOMDocumentClass();
    doc.async = false;
    doc.resolveExternals = false;
    // Load XML document.
    doc.load(this.MapPath("Q330602.xml"));
    
    MSXML2.DOMDocument xsl = new MSXML2.DOMDocumentClass();
    doc.async = false;
    doc.resolveExternals = false;
    // Load XSLT document.
    xsl.load(this.MapPath("msxml.xslt"));
    // Transform XML data.
    string temp = doc.transformNode(xsl);
    Response.Write(temp);
    字符串临时 = doc.transformNode(xsl); Response.Write(Temp) ;
  8. 保存更改到 WebForm 1.aspx.cs。
  9. 确保将 Q330602.xml 和 Msxml.xslt 文件创建项目的文件夹中。
  10. 生成 菜单上单击 生成解决方案

 

source: http://support.microsoft.com/kb/330602/zh-cn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值