XSL中有变量连接的N种方法尝试都不怎么成功,(其实可以不用变量,只是想试试用变量怎么做)
传入的参数:id=e12
达到的效果:
1<a href="main.asp?groupid=12">
2groupid中去掉id的e
3
4尝试过的方法:
51、用substring()方法
6<a>
7<xsl:attribute name="href">
8<xsl:value-of select="substring(.[@id],1)"></xsl:value-of>以及substring放到不同的位置;
9</xsl:attribute>
10</a>
11
122、查MSDN,用<xsl:eval>标签
13
14<a>
15<xsl:attribute name="href">
16<xsl:eval>
17substring("<xsl:value-of select="@id"></xsl:value-of>",1)以及自己写的javascript函数,以及报eval标签放到value-of标签中;
18</xsl:eval>
19</xsl:attribute>
20</a>
21
223、看CSDN上XSL连接的源码:
23<a>
24<xsl:attribute name="href">
25javascript:top.mainFrame.location.href="main.jsp?groupid="+("<xsl:value-of select="@id"></xsl:value-of>".substring(1));go(-1)(因我的代码此处要连接到另一贞,这个代码执行时两个页面都要刷新,所以在原来那页用了个go(-1))
26</xsl:attribute>
27</a>
28
29功能算是实现了,但是方法我感觉是苯之以及;
30
31试验平台:Win2K+IE5.0
32体会:XSL的函数功能太弱(也可能是我没掌握,也可能是我用IE5.0的原因,很想升级,但又想从低版本实现适用性较好,最好还是升到支持<xsl:eval>的版本,<注:此处有人有疑问>,我也查了w3c上几个版本的DTD for StyleSheet均未发现这个标签,不知是不是MS自己加上去的,查了MS也没找到这个标签的描述;有谁找到告诉我一声);也有人说是IE6下才支持这个标签,我也没有多版本IE可以测试,谁测试出来也告诉我一声:)
33
34
35很希望有哪位高人给我指点一下更好的方法,知道的人自然很简单的:)
36
37
38
39\---------------------------------------------------------------
40
41eval都支持的。用法是这样:我以前用的:
42
43<xsl:template match="string">
44<xsl:eval no-entities="true">this.nodeTypedValue;</xsl:eval>
45</xsl:template>
46..............
47<xsl:script>
48<![CDATA[
49var posindex = 0;
50// 增加一个空白输入框供用户输入。下面的函数增加一个单选按钮!!
51function getIndex(nodepara)
52{
53posindex = parseInt(nodepara.getAttribute("positionindex"));
54var imgincluded = "";
55if(nodepara.getAttribute("imgincluded") == "yes")
56return '<input type="radio" name="radiobutton" value="'+ posindex +'" checked/>';
57else
58return '<input type="radio" name="radiobutton" value="' + posindex + '"/>';
59}
60
61
62]]>
63</xsl:script
64\---------------------------------------------------------------
65
66是xml2.6才有的,而且sdk里没有!:(
67后来又去掉了!
68
69\---------------------------------------------------------------
70
71这个标签只在
72xmlns:xsl="http://www.w3.org/TR/WD-xsl"
73名称空间下用。新版本增加了许多函数,如substr()等等。</xsl:script></xsl:eval></xsl:eval></a>