新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论XSL,XSLT,XSL-FO,CSS等技术
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XSL/XSLT/XSL-FO/CSS 』 → 第一次报道,请教个xsl过滤算法的问题 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 1930 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 第一次报道,请教个xsl过滤算法的问题 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     shaokao 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:0
      积分:52
      门派:XML.ORG.CN
      注册:2004/12/30

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给shaokao发送一个短消息 把shaokao加入好友 查看shaokao的个人资料 搜索shaokao在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看shaokao的博客楼主
    发贴心情 第一次报道,请教个xsl过滤算法的问题

    <a>
        <b>
            <c>
                <name>xxx</name>
            </c>
            <c>
                <name>yyyy</name>
            </c>
            ..........
        </b>
        <b1>
            <c>
                <name>xxx</name>
            </c>
            ........
        </b1>

    如果b/c的内容在b1/c里也有(xxx相等)那我就显示xxx被包含了,否则就显示xxx没被包含

    我本来是打算放一个全局变量
    <xsl:variable name="HasSame" select="'False'"/>
    ..........
    ..........
    <xsl:for-each select="/a/b/c">
        然后这里用局部变量override一次复位
        <xsl:variable name="HasSame" select="'False'"/>
        然后用一个变量存储当前的name
        <xsl:variable name="Name" select="/a/b/c/name" />
        然后遍历b1的循环
        <xsl:for-each select="/a/b1/c">
            然后比较名称
           <xsl:if test="$Name=Name">
            如果发现名称相等,则再次重载这个变量
            <xsl:variable name="HasSame" select="'True'"/>
           </xsl:if>
         </xsl:for-each>

        比较完成后跳出循环,根据HasSame这个变量是true还是false做相应处理
        接着继续遍历/a/b/c的循环

        但是我发现不同范围的变量重载是有冲突的
        也就是我只能重载一次,达不到要求

    在线等待


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/12/30 13:14:00
     
     doubleG 帅哥哟,离线,有人找我吗?
      
      
      威望:7
      等级:大三(面向对象是个好东东!)
      文章:591
      积分:4119
      门派:XML.ORG.CN
      注册:2004/5/27

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给doubleG发送一个短消息 把doubleG加入好友 查看doubleG的个人资料 搜索doubleG在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看doubleG的博客2
    发贴心情 
    <xsl:variable...>只能声明一次,而且声明后值不能改变,这个不像传统意义上的参数,你需要进行变通。例如你可以<xsl:if test="count(/a/b/c[name='xxx']) >1 and count(/a/b1/c[name='xxx']) >1">..........</xsl:if>
    不要沿着一般的思路了。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/12/30 18:52:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/9/10 4:36:48

    本主题贴数2,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    62.500ms