在XSL里应用javascript/C# Script等

比如有XML:

1<root>
2<item>abcdefabcdeabcdef</item>
3</root>

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

嵌javascript的解决方法:

XSL如下:

 1<xsl:stylesheet _="" _xmlns:msxsl="urn:schemas-microsoft-com:xslt" myns="urn:myNameSpace" version="1.0" xmlns:="" xmlns:xsl="  http://www.w3.org/1999/XSL/Transform  ">   
 2** <msxsl:script implements-prefix="  myNS  " language="JScript">
 3<![CDATA[   
 4function trans(s)   
 5{   
 6var ary = s.split('b');   
 7return ary.join('B');   
 8}   
 9]]>
10</msxsl:script> **
11
12<xsl:template match="/">
13<xsl:apply-templates select="//root/item"></xsl:apply-templates>
14</xsl:template>
15<xsl:template match="root/item">
16<xsl:value-of select=" ** myNS  :trans(string(.)) ** "></xsl:value-of>
17</xsl:template>
18</xsl:stylesheet>

**联想到了什么?
**

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

__

1<msxsl:script implements-prefix="myNS" language="  c#  ">
2<![CDATA[   
3public string trans(string s)   
4{   
5string[] ary = s.Split('b');   
6return string.Join('B', ary);   
7}   
8]]>
9</msxsl:script>

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

而不是客户端常用的 msxml。

Published At
Categories with Web编程
Tagged with
comments powered by Disqus