以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 XSL/XSLT/XSL-FO/CSS 』 (http://bbs.xml.org.cn/list.asp?boardid=8) ---- 关于xslt输出不重复内容的问题 谢谢 (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=64546) |
-- 作者:fenjin -- 发布时间:7/11/2008 5:01:00 AM -- 关于xslt输出不重复内容的问题 谢谢 各位大哥, 小弟有这样一个问题: //xml <root> <A> <buy>apple</buy> <wo>a</wo> </A> <A> <buy>apple</buy> <wo>c</wo> </A> <A> <buy>banana</buy> <wo>a</wo> </A> <A> <buy>banana</buy> <wo>b</wo> </A> <A> <buy>watermelon </buy> <wo>b</wo> </A> </root> 就可以理解成3个人,输出每个人都买了什么东西。 |
-- 作者:Qr -- 发布时间:7/11/2008 12:21:00 PM -- 给你个思路吧: 用命名模板,取得第1个wo,并赋给变量tmp和all(这个变量将所有但不重复的wo组合起来,便于用contains判断下一个wo是否已经输出过),然后通过<xsl:apply-templates select="//A[wo='$tmp']/buy"/>就可以输出特定wo的所买的东西了。 |
-- 作者:fenjin -- 发布时间:7/17/2008 7:05:00 AM -- 看见这么多人看我的问题,不胜感激,大哥能不能再给说说 all 这个变量怎么实现,我现在就卡在这里,all设成<xsl:param name="all"..../>还是什么样的变量?param怎么改变?我本来是想 for-each每一次都可以得到新的wo, 用string-join加在all里。可是怎么实现?都困扰我还几天了,谢谢帮忙 |
-- 作者:Qr -- 发布时间:7/19/2008 11:10:00 AM -- <xsl:call-template> <xsl:param> <xsl:with-param> <xsl:variable> 另,concat()可以将字符串连接 |
-- 作者:sxchow -- 发布时间:7/22/2008 9:06:00 AM -- 楼主给个你解决问题后的xsl来看看吧 偶是新手,没明白Qr的思路 谢谢 |
-- 作者:fenjin -- 发布时间:7/26/2008 4:33:00 AM -- 我近来看了一本xslt2.0的书,2.0有一个新的函数,for in return ,我觉得是可以解决这个问题的让我举个例子,希望大家讨论 <xsl:value-of select="for $a in distinct-values(//wo) return($a,for $b in //buy[wo=$a] return ( $b/buy )) " /> 关于xslt1.0的方法 我觉得可以用last(),就相当于对于重复的wo只选择最后一个,试出来我就把程序帖出来
|
-- 作者:东方小牛 -- 发布时间:7/26/2008 9:54:00 AM -- 楼主 最近读了本 xslt2.0的书? 书名叫啥? 中文的么? |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
62.500ms |