以文本方式查看主题 - W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL (http://bbs.xml.org.cn/index.asp) -- 『 XSL/XSLT/XSL-FO/CSS 』 (http://bbs.xml.org.cn/list.asp?boardid=8) ---- 求助:Qr 你还在么,我又把图片上传了 你上去帮我看看 谢谢~!!! (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=75071) |
-- 作者:hexun831012 -- 发布时间:5/27/2009 4:01:00 PM -- 另,你的代码要求用<xsl:for-each>,本人不习惯用,除非不得已,一般用xsl:apply-templates。 同道中人,深知XSL至理,到底是QR |
-- 作者:Qr -- 发布时间:5/27/2009 5:31:00 PM -- 看过N多使用XSL模板的网站,全是用<xsl:for-each>,奇怪了,我就不喜欢。用xsl:apply-templates,XSL最牛的元素,用其写的代码结构清晰,易维护,何乐而不为。 |
-- 作者:hexun831012 -- 发布时间:5/27/2009 5:34:00 PM -- 个人感觉,很多人还是不能理解XSL的逻辑,还是用面向过程的语言的思路去写XSL 就像我还是不能适应JAVA一样,有时候还会用惯有的思维去套
|
-- 作者:wjj0322 -- 发布时间:5/31/2009 3:41:00 PM -- 呵呵 谢谢了,我看到了! 这是我到老师那里乘过来的XSLT文件,也做的出来的,和你的不大一样~! <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <HTML><body> <xsl:for-each select= "survey/question"> <xsl:if test="@type ='text'"> <P><xsl:value-of select="@name" />: <input type = "text"/></P> </xsl:if> <xsl:if test="@type ='radio'"> <P><xsl:value-of select="@name" />: </P> <xsl:for-each select= "./choice"> <P><input type ="radio" value="Radio1" name="RadioGroup"/><xsl:value-of select="@value" /></P> </xsl:for-each> </xsl:if> <xsl:if test="@type ='dropdownlist'"> <P><xsl:value-of select="@name" />: <select type="dropdownlist"> <xsl:for-each select= "./select"> <OPTION><xsl:value-of select="@value" /></OPTION> </xsl:for-each> </select></P> </xsl:if> </xsl:for-each> <input id="Button1" type="button" value="Submit"/> </body></HTML> </xsl:template> </xsl:stylesheet> |
-- 作者:Qr -- 发布时间:5/31/2009 6:17:00 PM -- 作为教学还可以,实际应用效率低,维护困难,可移植性差。 |
-- 作者:ioyichen -- 发布时间:6/19/2009 9:42:00 AM -- <xsl:for-each> 与计算机的高级编程更加接近,如果是程序员来写的,更加倾向与使用<xsl:for-each> 也比较好解释。而xsl:apply-templates有着其在xslt内有其本身的含义,我就比较喜欢for-each,因为这样控制起来方便,即使不懂xslt的人,对编程有点了解的,一看就明白其中的逻辑! |
-- 作者:Qr -- 发布时间:6/19/2009 12:25:00 PM -- 喜欢让步于效率。 xsl:apply-templates作为XSL基本的元素和基本应用,作为一个程序员,如果这个都不能很好理解和应用,舍效率而求喜好,那偶无话可说。 |
-- 作者:ioyichen -- 发布时间:6/19/2009 2:47:00 PM -- 但别忘了xsl:apply-templates 他的解析规则是有限制的,按顺序逐一,而for-each的可控制性更高啊 |
-- 作者:ioyichen -- 发布时间:6/19/2009 2:59:00 PM -- 不同的场景用哪个,没有强调一定要用哪个,选更加适合的即可 |
-- 作者:hexun831012 -- 发布时间:6/19/2009 4:19:00 PM -- 那你为什么不在SQL语句里写for循环,有没有见过20+文档组来做Trans,用for-each怎么封装,继承,重写 |
-- 作者:Qr -- 发布时间:6/19/2009 6:28:00 PM -- xsl:apply-templates 可控制性不见得差,也许是偶比较熟悉其应用吧。 偶也没有强调非要用xsl:apply-templates而舍弃for-each不可,存在总有其道理。 从XSL编程的角度上讲,xsl:apply-templates效率就是优于for-each,这是XSL的机制所决定的。 封装,继承,重写对于程序员来说是如此的重要。初学的时候,也曾用for-each,但稍微熟悉XSL编程后,偶就放弃了,for-each似乎很符合编程的逻辑,但是,随着代码的增加,缩进处理不好,恐怕你都不愿意去改之前自己写的代码,更别说代码的重用了。xsl:apply-templates可以让偶非常简单的把相类的代码应用到不同需要的编程中,用for-each只能慢慢的去分析和剥离。一句话,xsl:apply-templates更接近于面向对象的编程。 偶不是权威,只是从编程的角度强调xsl:apply-templates在XSL编程中的优越性,没有强迫他人意志的意思。
|
-- 作者:Qr -- 发布时间:6/19/2009 6:37:00 PM -- hexun831012的例子很生动。 实际上,熟悉了xsl:apply-templates的应用,你会发现,这其实非常符合编程的逻辑。xsl:apply-templates的应用就好象其它高级语言编程一样,将功能模块化,方便封装,继承,重写,这是偶使用和推崇的重要原因。 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
109.375ms |