您的位置:首页 > 编程语言 > C#

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

2009-09-18 16:00 761 查看

创建示例 XML 文件

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

[code]<data>10/24/2002</data>

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

以下代码粘贴在记事本或其他的文本编辑器中,然后保存该文件作为 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>



在 Microsoft Visual Studio.NET 中创建新的 ASP.NET Web 名为 DateTimeDotNet 使用 Visual C#.NET 应用程序。

右键单击 WebForm 1.aspx ,设计器表面,然后单击 查看代码 以编辑 WebForm 1.aspx.cs 类模块。

使用 指令部分 WebForm 1.aspx.cs 中粘贴以下:

[code]using System.Xml.Xsl;
using System.Xml.XPath;

[/code]

将以下代码粘贴在 Page _ Load 事件中:

[code]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);

[/code]

transform.Transform (文档,null,Response.OutputStream);

将更改保存到 WebForm 1.aspx.cs。

确保将 Q330602.xml 和 DotNet.xslt 文件创建项目位于同一文件夹中。

生成 菜单上单击 生成解决方案

启动 Microsoft Internet Explorer 并打开 WebForm 1.aspx 文件。 为此,指定以下 URL 其中 IISServerName 是 Microsoft Internet Information Services (IIS) 服务器的名称:

[code]http://IISServerName/DateTimeDotNet/WebForm1.aspx

[/code]

通过使用 MSXML 应用 XSLT 转换

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

[code]<?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>

[/code]

创建新的 ASP.NET Web 应用程序项目使用 Visual C#.NET 来命名 DateTimeMSXml。

项目 菜单上单击 添加引用

COM 选项卡,选择 Microsoft XML、 v 3.0

单击 选择 ,然后单击 确定

右键单击 WebForm 1.aspx ,设计器表面,然后单击 查看代码 以编辑 WebForm 1.aspx.cs 类模块。

将以下代码粘贴到 Page _ Load event:

[code]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);

[/code]

字符串临时 = doc.transformNode(xsl); Response.Write(Temp) ;

保存更改到 WebForm 1.aspx.cs。

确保将 Q330602.xml 和 Msxml.xslt 文件创建项目的文件夹中。

生成 菜单上单击 生成解决方案

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

[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐