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

    >> 本版讨论XSL,XSLT,XSL-FO,CSS等技术
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XSL/XSLT/XSL-FO/CSS 』 → 初来贵地,请高手指教一个关于xml通过xsl转换的问题? 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 2748 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 初来贵地,请高手指教一个关于xml通过xsl转换的问题? 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     亭竹叶影 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:3
      积分:64
      门派:XML.ORG.CN
      注册:2005/6/17

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给亭竹叶影发送一个短消息 把亭竹叶影加入好友 查看亭竹叶影的个人资料 搜索亭竹叶影在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看亭竹叶影的博客楼主
    发贴心情 初来贵地,请高手指教一个关于xml通过xsl转换的问题?

    初来贵地,潜水了几天,看了不少帖子,但还是没有解决我的问题.请高人指教,多谢多谢!长话短说,以下是我的问题.
    我的源XML文件如下:
    <ROWSET>
     <ROW>
      <AMOUNT>00034</AMOUNT>
     </ROW>
     <ROW>
      <AMOUNT>184008</AMOUNT>
      <CONT>张三</CONT>
     </ROW>
     <ROW>
      <AMOUNT>184006</AMOUNT>
     </ROW>
     <ROW>
      <AMOUNT>184007</AMOUNT>
      <CONT>李四</CONT>
     </ROW> 
    </ROWSET>

    其中<CONT>节点在在<ROW>循环节点中可能存在也可能不存在,如果存在最多出现一次.现在我需要将该XML通过XSLT转换成以下目标XML:(其中AMOUNT对应bank节点,CONT对应NAME节点)
    <Body>
      <Record>
       <bank>00034</bank>
       <NAME></NAME>
      </Record>
      <Record>
       
       <bank>184006</bank>
       <NAME>张三</NAME>
      </Record>
      <Record>
       <bank>184006</bank>
       <NAME></NAME>
      </Record>
      <Record>
       <bank>184007</bank>
       <NAME>李四</NAME>
      </Record>
     </Body>
    目标文件中的NAME节点所对应的CONT节点如果在源文件中没出现的话,则在目标文件中
    用"<NAME></NAME>"来代替.
    我的XSLT转换文件涉及转换的文件目前为:
    <!--对节点中可能出现不定数量的节点进行处理 --> 
    <xsl:for-each select="CONT">                                                    
    <xsl:variable name="CONT" select="."/>                                  
    <NAME>                                                                    
    <xsl:variable name="booleanResult" select="fn:boolean(//CONT)"/>
    <xsl:variable name="ConditionResult">                             
    <xsl:choose>                                              
    <xsl:when test="$booleanResult">                  
    <xsl:variable name="CONT22" select="."/>
    <xsl:value-of select="$CONT22"/>         
    </xsl:when>                                       
    <xsl:otherwise>                                   
    <xsl:value-of select="''"/>               
    </xsl:otherwise>                                  
    </xsl:choose>                                             
    </xsl:variable>                                                   
    <xsl:value-of select="$ConditionResult"/>                         
    </NAME>                                                                   
    </xsl:for-each>                      
    我试了好几天,分别采用count和root函数,但也没有试出来方法,不知为什么"<NAME></NAME>"总是在目标文件中不能出现,请指教该如何处理??热切盼望高人指点,不胜感激,多谢多谢!!!


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/6/17 10:11:00
     
     孤独 帅哥哟,离线,有人找我吗?
      
      
      威望:7
      等级:大三(面向对象是个好东东!)(版主)
      文章:826
      积分:4220
      门派:XML.ORG.CN
      注册:2004/1/14

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给孤独发送一个短消息 把孤独加入好友 查看孤独的个人资料 搜索孤独在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看孤独的博客2
    发贴心情 
    <xsl:template match="ROW">
    <Record>
         <bank><xsl:value-of select="AMOUNT" /></bank>
         <name><xsl:value-of select="CONT" /></name>
    </Record>
    </xsl:template>
    没经过测试,直接在根模板<xsl:apply-templates select="ROS"/>就可以

    ----------------------------------------------
    <?xml version="1.0" encoding="gb2312"?>
    <个人签名>
      <Website>[url=http://www.mahaobo.cn]
    MaHaobo.cn[/url]
    </Website>
    <Email>aloning(at)gmail.com</Email>
      <Qq >32113739</Qq>
    </个人签名>

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/6/17 10:17:00
     
     亭竹叶影 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:3
      积分:64
      门派:XML.ORG.CN
      注册:2005/6/17

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给亭竹叶影发送一个短消息 把亭竹叶影加入好友 查看亭竹叶影的个人资料 搜索亭竹叶影在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看亭竹叶影的博客3
    发贴心情 
    成功了,多谢孤独!!!万分感激中!!!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/6/17 10:30:00
     
     亭竹叶影 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:3
      积分:64
      门派:XML.ORG.CN
      注册:2005/6/17

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给亭竹叶影发送一个短消息 把亭竹叶影加入好友 查看亭竹叶影的个人资料 搜索亭竹叶影在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看亭竹叶影的博客4
    发贴心情 
    再问一句为什么我用
    <xsl:for-each select="CONT">
     <NAME>
      <xsl:value-of select="."/>
     </NAME>
    </xsl:for-each>
    就达不到效果,而<NAME><xsl:value-of select="CONT" /></NAME>就能达到效果呢?
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/6/17 11:15:00
     
     孤独 帅哥哟,离线,有人找我吗?
      
      
      威望:7
      等级:大三(面向对象是个好东东!)(版主)
      文章:826
      积分:4220
      门派:XML.ORG.CN
      注册:2004/1/14

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给孤独发送一个短消息 把孤独加入好友 查看孤独的个人资料 搜索孤独在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看孤独的博客5
    发贴心情 
    <xsl:for-each select="CONT">
    <NAME>
      <xsl:value-of select="."/>
    </NAME>
    </xsl:for-each>
    如果没CONT节点当然没法循环了

    ----------------------------------------------
    <?xml version="1.0" encoding="gb2312"?>
    <个人签名>
      <Website>[url=http://www.mahaobo.cn]
    MaHaobo.cn[/url]
    </Website>
    <Email>aloning(at)gmail.com</Email>
      <Qq >32113739</Qq>
    </个人签名>

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/6/17 11:38:00
     
     亭竹叶影 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:3
      积分:64
      门派:XML.ORG.CN
      注册:2005/6/17

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给亭竹叶影发送一个短消息 把亭竹叶影加入好友 查看亭竹叶影的个人资料 搜索亭竹叶影在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看亭竹叶影的博客6
    发贴心情 
    万分感谢:)
    看来我需要多多学习,谢谢!!!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/6/17 12:30: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/10/6 1:58:35

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

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