在XSL里应用javascript/C# Script等

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

比如有XML:

<root>

<item>abcdefabcdeabcdef</item>

</root>

要求写XSL来转换该XML,输出中item的内容中所有的b都要变成B,普通XSL不能完成

嵌javascript的解决方法:

XSL如下:

<?xml version="1.0" encoding="gb2312"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

xmlns:msxsl="urn:schemas-microsoft-com:xslt"

xmlns:myNS="urn:myNameSpace">

<msxsl:script language="JScript" implements-prefix="myNS">

<![CDATA[

function trans(s)

{

var ary = s.split('b');

return ary.join('B');

}

]]>

</msxsl:script>

<xsl:template match="/">

<xsl:apply-templates select="//root/item"/>

</xsl:template>

<xsl:template match="root/item">

<xsl:value-of select="myNS:trans(string(.))"/>

</xsl:template>

</xsl:stylesheet>

联想到了什么?

Script可以不是JScript, 而是C#:

<msxsl:script language="c#" implements-prefix="myNS">

<![CDATA[

public string trans(string s)

{

string[] ary = s.Split('b');

return string.Join('B', ary);

}

]]>

</msxsl:script>

但只能是用 .net framework 的 System.Xml 来解析,

而不是客户端常用的 msxml。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航