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

    >> 本版讨论XSL,XSLT,XSL-FO,CSS等技术
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XSL/XSLT/XSL-FO/CSS 』 → [求助]如何在转换后消除相同项 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 11416 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [求助]如何在转换后消除相同项 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     wystan 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:9
      积分:84
      门派:XML.ORG.CN
      注册:2007/3/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给wystan发送一个短消息 把wystan加入好友 查看wystan的个人资料 搜索wystan在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看wystan的博客楼主
    发贴心情 [求助]如何在转换后消除相同项

    求助各位老大
    比如我的原文档
    <start>
       <element>
           <name>1</name>
           <class>a</class>
       </element>
       <element>
           <name>2</name>
           <class>a</class>
       </element>
       <element>
           <name>3</name>
           <class>a</class>
       </element>
       <element>
           <name>4</name>
           <class>b</class>
       </element>
    </start>
    转换后的效果
    <start>
        <class>a
            <name>1</name>
            <name>2</name>
            <name>3</name>
            <name>4</name>
        </class>
        <class>b
            <name>5</name>    
        </class>   
    </start>  

    大概就是这个意思 要把新文档按照原文档中的class归类 合并后显示出来 不知道如何利用xslt来实现 多谢各位 谁能帮看看写个例子xslt


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/4/25 0:44:00
     
     hexun831012 帅哥哟,离线,有人找我吗?天秤座1983-10-12
      
      
      威望:1
      等级:研二(Pi-Calculus看得一头雾水)(版主)
      文章:800
      积分:5114
      门派:XML.ORG.CN
      注册:2006/12/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hexun831012发送一个短消息 把hexun831012加入好友 查看hexun831012的个人资料 搜索hexun831012在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看hexun831012的博客2
    发贴心情 
    转换两次
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/4/25 9:11:00
     
     wystan 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:9
      积分:84
      门派:XML.ORG.CN
      注册:2007/3/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给wystan发送一个短消息 把wystan加入好友 查看wystan的个人资料 搜索wystan在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看wystan的博客3
    发贴心情 
    如何转换两次 老大 能否说的再详细点....
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/4/25 13:19:00
     
     gogy 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(数据结构考了98分!)
      文章:66
      积分:493
      门派:XML.ORG.CN
      注册:2006/10/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给gogy发送一个短消息 把gogy加入好友 查看gogy的个人资料 搜索gogy在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看gogy的博客4
    发贴心情 
    试试:
    <?xml version='1.0'?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     <xsl:template match="start">
      <xsl:copy select=".">
       <xsl:for-each select="element[not(preceding-sibling::element/class=class)]">
        <xsl:copy select="class">
         <xsl:value-of select="class"/>
         <xsl:copy-of select="../element[class=current()/class]/name"/>
        </xsl:copy>
       </xsl:for-each>
      </xsl:copy>
     </xsl:template>
    </xsl:stylesheet>
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/4/25 21:19:00
     
     gogy 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(数据结构考了98分!)
      文章:66
      积分:493
      门派:XML.ORG.CN
      注册:2006/10/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给gogy发送一个短消息 把gogy加入好友 查看gogy的个人资料 搜索gogy在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看gogy的博客5
    发贴心情 
    sorry 出现了概念错误。<xs:copy>那里。
    <?xml version='1.0'?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     <xsl:template match="start">
      <xsl:copy select=".">
       <xsl:for-each select="element[not(preceding-sibling::element/class=class)]/class">
        <xsl:copy>
         <xsl:value-of select="."/>
         <xsl:copy-of select="//element[class=current()]/name"/>
        </xsl:copy>
       </xsl:for-each>
      </xsl:copy>
     </xsl:template>
    </xsl:stylesheet>
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/4/25 21:48:00
     
     wystan 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:9
      积分:84
      门派:XML.ORG.CN
      注册:2007/3/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给wystan发送一个短消息 把wystan加入好友 查看wystan的个人资料 搜索wystan在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看wystan的博客6
    发贴心情 
    先感谢再研究
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/4/26 2:42:00
     
     wystan 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:9
      积分:84
      门派:XML.ORG.CN
      注册:2007/3/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给wystan发送一个短消息 把wystan加入好友 查看wystan的个人资料 搜索wystan在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看wystan的博客7
    发贴心情 
    When I use the same function I can't get the result.
    I try a lot but I don't why it doesnot work
    my original text  

    it is structure is like
    <MSRFR>
       <FR-FEATURES>
            <FR-FEATURE ID="">
               ...
                <FR-FMEA-INFO>
                    <FM-STRUCTURE-ELEMENT-REFS>
                        <FM-STRUCTURE-ELEMENT-REF/>
                  ...      
            <FR-FEATURE ID="">
            <FR-FEATURE ID="">
             .....
       </FR-FEATURES>
    </MSRFR>

    I want transfer it to the structure as
    <FM-STRUCTURE-ELEMENTS>
       <FM-STRUCTURE-ELEMENT ID="">
           <FM-SE-FEATURES>
                <FM-FEATURE ID-REF=""/>
                <FM-FEATURE ID-REF=""/>
                 ....
       <FM-STRUCTURE-ELEMENT ID="">
       <FM-STRUCTURE-ELEMENT ID="">
        ...
    <FM-STRUCTURE-ELEMENTS>

    and i write the xslt like
    <xsl:template match="/">
       <FM-STRUCTURE-ELEMENTS>
           <xsl:for-each select="MSRFR/FR-FEATURES/FR-FEATURE[not(following-sibling::FR-FEATURE/FR-FMEA-INFO/FM-STRUCTURE-ELEMENT-REFS/FM-STRUCTURE-ELEMENT-REF=FM-STRUCTURE-ELEMENT-REF)]/FR-FMEA-INFO/FM-STRUCTURE-ELEMENT-REFS/FM-STRUCTURE-ELEMENT-REF">
           <xsl:element name="FM-STRUCTURE-ELEMENT">
              <xsl:attribute name="ID">
                  <xsl:value-of select="."/>
              </xsl:attribute>
              <xsl:copy-of select="//FR-FEATURE[//FM-STRUCTURE-ELEMENT-REF=current()]/@ID"/>
             </xsl:element>        </xsl:for-each>
       </FM-STRUCTURE-ELEMENTS>

    but the results show all structure elements
    ...

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/4/26 22:36:00
     
     gogy 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(数据结构考了98分!)
      文章:66
      积分:493
      门派:XML.ORG.CN
      注册:2006/10/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给gogy发送一个短消息 把gogy加入好友 查看gogy的个人资料 搜索gogy在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看gogy的博客8
    发贴心情 
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
       <FM-STRUCTURE-ELEMENTS>
        <xsl:for-each select="MSRFR/FR-FEATURES/FR-FEATURE/FR-FMEA-INFO/FM-STRUCTURE-ELEMENT-REFS/FM-STRUCTURE-ELEMENT-REF[not(preceding::FM-STRUCTURE-ELEMENT-REF=.)]">
           <xsl:element name="FM-STRUCTURE-ELEMENT">
              <xsl:attribute name="ID">
                  <xsl:value-of select="."/>
              </xsl:attribute>
              <!--xsl:copy-of select="//FR-FEATURE[//FM-STRUCTURE-ELEMENT-REF=current()]/@ID"/-->
             </xsl:element>        
       </xsl:for-each>
       </FM-STRUCTURE-ELEMENTS>
    </xsl:template>
    </xsl:stylesheet>
    备注的那句话,不知道你要干嘛。为什么把属性ID覆盖了呢?
    另:下次能用中文描述问题吗?
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/4/27 0:07:00
     
     wystan 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:9
      积分:84
      门派:XML.ORG.CN
      注册:2007/3/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给wystan发送一个短消息 把wystan加入好友 查看wystan的个人资料 搜索wystan在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看wystan的博客9
    发贴心情 
    不好意思 白天找不到中文输入 想先发出去
    就是说不知道为什么我用你的方法 我感觉基本都是照搬了 可是输出里面还是把所有的
    structure element 都输出了 没有把相同的消除掉 觉得很奇怪
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/4/27 0:18:00
     
     wystan 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:9
      积分:84
      门派:XML.ORG.CN
      注册:2007/3/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给wystan发送一个短消息 把wystan加入好友 查看wystan的个人资料 搜索wystan在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看wystan的博客10
    发贴心情 
    问题基本就是我一开始问得 就是节点深了些 不知道问题出在哪里
    原文档中按各个特点排列的 FR-FEATURE 然后有个属性ID纪录名字 后面又有个属性<FM-STRUCTURE-ELEMENT-REF>这里记录它的结构元素

    然后我想把它转换成按结构元素排列的 <FM-STRUCTURE-ELEMENT 然后他也有个属性ID存名字 再在每个结构元素里列出有哪些特点<FM-FEATURE ID-REF=""/><FM-FEATURE ID-REF=""/>这里的ID-REF存 FR-FEATURE里的ID

    我按照你的方法可是输出来以后还是把所有的结构元素都列出来了
    所以我想可能是<xsl:for-each select="element[not(preceding-sibling::element/class=class)]/class">这句判别的时候出了问题 我试过你的没有问题 可是用到我这里就不知道怎么回事了
    我的这句是
    <xsl:for-each select="MSRFR/FR-FEATURES/FR-FEATURE[not(following-sibling::FR-FEATURE/FR-FMEA-INFO/FM-STRUCTURE-ELEMENT-REFS/FM-STRUCTURE-ELEMENT-REF=FM-STRUCTURE-ELEMENT-REF)]/FR-FMEA-INFO/FM-STRUCTURE-ELEMENT-REFS/FM-STRUCTURE-ELEMENT-REF">

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/4/27 0:29:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/16 0:30:54

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

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