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

    >> 关于 XML 的一般性技术讨论,提供 XML入门资料 和 XML教程
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XML基础 』 → Qr可以再解答一下xml合并问题么?[求助] 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 3922 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: Qr可以再解答一下xml合并问题么?[求助] 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     fangel2000 帅哥哟,离线,有人找我吗?
      
      
      头衔:w3china第一水王
      等级:大四寒假(收到Microsoft的Offer啦)
      文章:283
      积分:1503
      门派:W3CHINA.ORG
      注册:2006/5/30

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给fangel2000发送一个短消息 把fangel2000加入好友 查看fangel2000的个人资料 搜索fangel2000在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看fangel2000的博客楼主
    发贴心情 Qr可以再解答一下xml合并问题么?[求助]

    第一个xml文档:1.xml
    <?xml version="1.0" encoding="iso-8859-1" ?>
    <?xml:stylesheet type="text/xsl" href="3.xsl"?>
    <rss version="2.0">
        <channel>
            <item>
                <title> Nikon Coolpix S600 </title>
                <category> Digital Cameras </category>
            </item>

            <item>
                <title> Griffin TuneBuds </title>
                <category> Headphones </category>
            </item>
        </channel>
    </rss>

    第二个XML文档:2.xml
    <?xml version="1.0" encoding="iso-8859-1" ?>
    <rss version="2.0">
        <channel>
             <item>
                <title> Lawn Aerator Sandals </title>
                <category> Garden </category>
            </item>

            <item>
                <title> Belkin Laptop Hideaway </title>
                <category> Notebook Accessories </category>
            </item>
        </channel>
    </rss>

    xsl文件:3.xsl
    <?xml version="1.0" encoding="gb2312"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" version="1.0" encoding="gb2312" indent="yes" />
    <xsl:variable name="temp" select="document('2.xml')//item" />

    <xsl:template match="/">
     <html>
      <head></head>
      <body>
       <table border="1">
        <xsl:apply-templates select="//item" />
       </table>
      </body>
     </html>
    </xsl:template>


    <xsl:template match="item">
     <tr>
      <td><xsl:value-of select="title" /></td>
      <td><xsl:value-of select="category" /></td>
     </tr>
     <tr bgcolor="#FF0000">
      <td><xsl:value-of select="$temp/title" /></td>      
      <td><xsl:value-of select="$temp/category" /></td>
     </tr>
    </xsl:template>
    </xsl:stylesheet>

    为什么合并以后出现的结果是这个????
    Nikon Coolpix S600          Digital Cameras
    Lawn Aerator Sandals       Garden    //第二行和第四行重复
    Griffin TuneBuds              Headphones
    Lawn Aerator Sandals      Garden   
    //原本这个第四行应该为:Belkin Laptop Hideaway         Notebook Accessories

    ps:还有知道怎么样做才能让第二个XML文档的内容出现在第一个文档的后面,而不是像我这样的交替显示的么?


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/4/2 17:10:00
     
     Qr 帅哥哟,离线,有人找我吗?
      
      
      威望:9
      等级:博士二年级(版主)
      文章:4392
      积分:29981
      门派:XML.ORG.CN
      注册:2004/5/15

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Qr发送一个短消息 把Qr加入好友 查看Qr的个人资料 搜索Qr在『 XML基础 』的所有贴子 访问Qr的主页 引用回复这个贴子 回复这个贴子 查看Qr的博客2
    发贴心情 
    <xsl:apply-templates select="//item" />处理的只是1.XML的节点,因其有两条记录,因此2.xml中的第一条记录输出两次,原因是你把$temp的处理写到<xsl:template match="item">
    这个模板中了。应该把$temp的处理作为一个独立的模板来写代码。

    ----------------------------------------------
    没人帮忙,那就靠自己,自己才是最好的老师!本人拒绝回答通过站内短消息提出的问题!

    blog:http://Qr.blogger.org.cn

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/4/2 18:38:00
     
     Qr 帅哥哟,离线,有人找我吗?
      
      
      威望:9
      等级:博士二年级(版主)
      文章:4392
      积分:29981
      门派:XML.ORG.CN
      注册:2004/5/15

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Qr发送一个短消息 把Qr加入好友 查看Qr的个人资料 搜索Qr在『 XML基础 』的所有贴子 访问Qr的主页 引用回复这个贴子 回复这个贴子 查看Qr的博客3
    发贴心情 
    <?xml version="1.0" encoding="gb2312"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" version="1.0" encoding="gb2312" indent="yes" />
    <xsl:variable name="temp" select="document('2.xml')//item" />

    <xsl:template match="/">
    <html>
      <head></head>
      <body>
       <table border="1">
        <xsl:apply-templates select="//item" />
        <xsl:call-template name="temp"/><!--或者干脆直接用for-each-->
       </table>
      </body>
    </html>
    </xsl:template>


    <xsl:template match="item">
    <tr>
      <td><xsl:value-of select="title" /></td>
      <td><xsl:value-of select="category" /></td>
    </tr>
    </xsl:template>
    <xsl:template name="temp">
    <xsl:for-each select="$temp">
    <tr bgcolor="#FF0000">
      <td><xsl:value-of select="title" /></td>      
      <td><xsl:value-of select="category" /></td>
    </tr>
    </xsl:for-each>
    </xsl:template>
    </xsl:stylesheet>

    ----------------------------------------------
    没人帮忙,那就靠自己,自己才是最好的老师!本人拒绝回答通过站内短消息提出的问题!

    blog:http://Qr.blogger.org.cn

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/4/2 18:51:00
     
     fangel2000 帅哥哟,离线,有人找我吗?
      
      
      头衔:w3china第一水王
      等级:大四寒假(收到Microsoft的Offer啦)
      文章:283
      积分:1503
      门派:W3CHINA.ORG
      注册:2006/5/30

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给fangel2000发送一个短消息 把fangel2000加入好友 查看fangel2000的个人资料 搜索fangel2000在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看fangel2000的博客4
    发贴心情 
    非常感谢Qr的帮助!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/4/2 19:11:00
     
     Qr 帅哥哟,离线,有人找我吗?
      
      
      威望:9
      等级:博士二年级(版主)
      文章:4392
      积分:29981
      门派:XML.ORG.CN
      注册:2004/5/15

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Qr发送一个短消息 把Qr加入好友 查看Qr的个人资料 搜索Qr在『 XML基础 』的所有贴子 访问Qr的主页 引用回复这个贴子 回复这个贴子 查看Qr的博客5
    发贴心情 

    ----------------------------------------------
    没人帮忙,那就靠自己,自己才是最好的老师!本人拒绝回答通过站内短消息提出的问题!

    blog:http://Qr.blogger.org.cn

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/4/2 19:13:00
     
     fangel2000 帅哥哟,离线,有人找我吗?
      
      
      头衔:w3china第一水王
      等级:大四寒假(收到Microsoft的Offer啦)
      文章:283
      积分:1503
      门派:W3CHINA.ORG
      注册:2006/5/30

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给fangel2000发送一个短消息 把fangel2000加入好友 查看fangel2000的个人资料 搜索fangel2000在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看fangel2000的博客6
    发贴心情 
    请教Qr最后一个问题啊
    如果我要合并10个XML文档呢?1.xml 2.xml   .... 10.xml
    我是不是要像这样
    “<xsl:variable name="temp" select="document('2.xml')//item" />”
    定义10个document()这样的变量啊?
    有没有更好的方法?
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/4/2 22:45:00
     
     Qr 帅哥哟,离线,有人找我吗?
      
      
      威望:9
      等级:博士二年级(版主)
      文章:4392
      积分:29981
      门派:XML.ORG.CN
      注册:2004/5/15

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Qr发送一个短消息 把Qr加入好友 查看Qr的个人资料 搜索Qr在『 XML基础 』的所有贴子 访问Qr的主页 引用回复这个贴子 回复这个贴子 查看Qr的博客7
    发贴心情 
    document()10次或更多实在是麻烦,可以使用<xsl:call-template>模板递归来定义,实现循环的功能,动态document()不同的XML。我的BLOG上也有模板递归来实现循环计数的相关示例。
    另外,不用XSLT而改用SAX来处理也是不错的选择,更适合大文件。DOM也可以,但只适合小文件。

    ----------------------------------------------
    没人帮忙,那就靠自己,自己才是最好的老师!本人拒绝回答通过站内短消息提出的问题!

    blog:http://Qr.blogger.org.cn

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/4/3 9:13:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML基础 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/9/7 12:06:00

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

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