果然,豆子真的很强,像神人一样。相比起来,我真的很羡慕他能有这么好的逻辑思维能力。
刚刚看完他写的 XSLT 的制作方式,写了很多,都是具有具体针对性的,逻辑性虽然不大好,不过罗列出来的都是容易犯错的地方。非常推荐大家去看看——《关于洛克龙阁使用XSLT模版引擎的一些使用心得和皮肤制作方法》。
下面,我来补充一下在帅豆的文章里说了不是很明白,或者不知道是啥东西的地方,其中一个当然是充满邪恶的 <xsl:param.../> 语句。
这个语句的 name 名是可以自定义的,随便乱写什么都可以。不过要说明一下,在调用你自己命名的 name 的时候,是有关联性的,必须是你将参数调用进来时候的节点下属才行。我们以一个例子来解释一下,首先,我们定义一个用来调用的区块(一般存在于 UI.xsl 里)。
- <!--定义一个模板区块,那么,就叫 my_demo 把,——我的例子-->
- <xsl:template name="my_demo">
- <!--然后,创建一个参数 myParAAAAm,我的参数~我尽量把能自定义的变量写得乱一些,这样大家可能会好理解些-->
- <xsl:param name="myParAAAAm"/>
- <!--然后,我们输出这个参数下的一个方法,就用公告举例吧(这里我们先不管到底有没有 Affiche 这个方法,我就是想要调用这东西,咋滴?不行吗?^_^)-->
- <xsl:value-of select="$myParAAAAm.Affiche"/>
- </xsl:template>
这样,一个与外部毫不相干的区块就完成了,我尊贵的 my_demo。
然后,我们在前台页调用这个区块,这里是重点理解的地方,大家请认真看下。
- <!--调用区块,name 属性必须是上面我们已经定义过的 my_demo 或其它已有的区块名-->
- <xsl:call-template name="my_demo">
- <!--
- 传入参数,这里重点讲解一下:
- name 属性必须是区块内定义过的 myParAAAAm,当然,不传入参数也行,只是就会出错而已~呵呵。
- 然后,这个参数的内容过程来源于 Global.Setting。这是内部的 XML 路径,照着写就行。附加说明:这个节点的路径在 /Roclog.UI/Global.Setting
- 因为传入的是 Global.Setting 节点,而这个节点有 Affiche 节,所以调用区块就没问题了。但是!如果传入的是其它节点,例如 Global.Config,则会因为 Global.Config 下没有 Affiche 节而出错。
- 但是,如果别的节点(如果有的话)如果有 Affiche 方法,则就算传入的节点不一样,但是都有下属节 Affiche 的话,就都没问题。
- -->
- <xsl:with-param name="myParAAAAm" select="Global.Setting"/>
- </xsl:call-template>
不知道大家能看懂不,我的意思大致是这样,区块是和外部完全独立的,但要求下属方法匹配。而调用区块的地方比较要注意传入的参数符不符合区块的要求。我能想到的暂时这些,希望大家补充。
这个 XSL 的 我要 倒2次以上才能做出来 还容易出错 唉~~回复2009-6-24 13:35:24
博客系统就用这样的引擎了。毕竟改来改去容易丢失资源~你看你的主题不是也做得挺好吗?呵呵~
这个引擎很方便,我想我不会改用别的了~呵呵。
别急,慢慢来。
嗯,多动手才是真理。