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

    >> 关于 XML 的一般性技术讨论,提供 XML入门资料 和 XML教程
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XML基础 』 → 新手求助:XML实现嵌套?? 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 2982 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 新手求助:XML实现嵌套?? 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     haoadele 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:0
      积分:57
      门派:XML.ORG.CN
      注册:2007/11/30

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给haoadele发送一个短消息 把haoadele加入好友 查看haoadele的个人资料 搜索haoadele在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看haoadele的博客楼主
    发贴心情 新手求助:XML实现嵌套??

    各位大侠,

    小弟初学XML,想实现如下转换却总是出错,请帮忙看一下是哪里的问题,不胜感激!

    <?xml version="1.0"?>
    <DataSetCollection xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <DataSet Name="151540WFG0017B" Type="Metrology Lot Run" Version="5.2.0" CreateTime="20070207152322">
        <Data>
          <Class ClassNumber="1" LocationX="0.3" LocationY="10.2">
          </Class>
          <Class ClassNumber="2" LocationX="10.2" LocationY="10.2">
          </Class>
          <A ANumber="50">
            <Test X="0" Y="1" TestN="1">
              <C Value1="xx" Value2="xx" Value3="xx" Value4="xx"
            </Test>
            <Test X="0" Y="2" TestN="1">
              <C Value1="xx" Value2="xx" Value3="xx" Value4="xx"
            </Test>
            <Test X="0" Y="3" TestN="1">
              <C Value1="xx" Value2="xx" Value3="xx" Value4="xx"
            </Test>
            <Test X="0" Y="1" TestN="2">
              <C Value1="xx" Value2="xx" Value3="xx" Value4="xx"
            </Test>
            <Test X="0" Y="2" TestN="2">
              <C Value1="xx" Value2="xx" Value3="xx" Value4="xx"
            </Test>
            <Test X="0" Y="3" TestN="2">
              <C Value1="xx" Value2="xx" Value3="xx" Value4="xx"
            </Test>
          </A>
          <A ANumber="51">
            <Test X="0" Y="1" TestN="1">
              <C Value1="xx" Value2="xx" Value3="xx" Value4="xx"
            </Test>
            <Test X="0" Y="2" TestN="1">
              <C Value1="xx" Value2="xx" Value3="xx" Value4="xx"
            </Test>
            <Test X="0" Y="3" TestN="1">
              <C Value1="xx" Value2="xx" Value3="xx" Value4="xx"
            </Test>
            <Test X="0" Y="1" TestN="2">
              <C Value1="xx" Value2="xx" Value3="xx" Value4="xx"
            </Test>
            <Test X="0" Y="2" TestN="2">
              <C Value1="xx" Value2="xx" Value3="xx" Value4="xx"
            </Test>
            <Test X="0" Y="3" TestN="2">
              <C Value1="xx" Value2="xx" Value3="xx" Value4="xx"
            </Test>
          </A>
        </Data>
       </DataSet>
    </DataSetCollection>

    ==> 转化为:
    ANumber:50

    TestN: 1
    Location X: 0.3    Location Y: 10.2

    X Y Value1 Value2 Value3 Value4
    0 1 xx xx xx xx
    0 2 xx xx xx xx
    0 3 xx xx xx xx

    TestN: 2
    Location X: 10.2    Location Y: 10.2

    X Y Value1 Value2 Value3 Value4
    0 1 xx xx xx xx
    0 2 xx xx xx xx
    0 3 xx xx xx xx

    ANumber:51

    TestN: 1
    Location X: 0.3    Location Y: 10.2

    X Y Value1 Value2 Value3 Value4
    0 1 xx xx xx xx
    0 2 xx xx xx xx
    0 3 xx xx xx xx

    TestN: 2
    Location X: 10.2    Location Y: 10.2

    X Y Value1 Value2 Value3 Value4
    0 1 xx xx xx xx
    0 2 xx xx xx xx
    0 3 xx xx xx xx

    我的程序如下:


    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
     <xsl:output method="text"/>

    <xsl:template match="DataSet">
    <xsl:for-each select="Data/A">
    ANumber<xsl:value-of select="@ANumber"/>
    <xsl:for-each select="Test[TestN='1']">
    TestN:<xsl:value-of select="Test/@TestN"/>
    Location X:<xsl:value-of select="//DataSetCollection/DataSet/Data/Class[1]/@LocationX"/>     Location Y:<xsl:value-of select="//DataSetCollection/DataSet/Data/Class[1]/@LocationY"/>
    X Y Value1 Value2 Value3 Value4
    <xsl:for-each select="Test"> 
    <xsl:value-of select="@X"/> <xsl:text> </xsl:text>  
    <xsl:value-of select="@Y"/> <xsl:text> </xsl:text>
    <xsl:value-of select="C/@Value1"/> <xsl:text> </xsl:text>
    <xsl:value-of select="C/@Value2"/> <xsl:text> </xsl:text>
    <xsl:value-of select="C/@Value3"/> <xsl:text> </xsl:text>
    <xsl:value-of select="C/@Value4"/> <xsl:text> </xsl:text>
    <xsl:text>
    </xsl:text>
    </xsl:for-each>
    </xsl:for-each>
    <xsl:for-each select="Test[TestN='2']">
    TestN:<xsl:value-of select="Test/@TestN"/>
    Location X:<xsl:value-of select="//DataSetCollection/DataSet/Data/Class[2]/@LocationX"/>     Location Y:<xsl:value-of select="//DataSetCollection/DataSet/Data/Class[2]/@LocationY"/>
    X Y Value1 Value2 Value3 Value4
    <xsl:for-each select="Test"> 
    <xsl:value-of select="@X"/> <xsl:text> </xsl:text>  
    <xsl:value-of select="@Y"/> <xsl:text> </xsl:text>
    <xsl:value-of select="C/@Value1"/> <xsl:text> </xsl:text>
    <xsl:value-of select="C/@Value2"/> <xsl:text> </xsl:text>
    <xsl:value-of select="C/@Value3"/> <xsl:text> </xsl:text>
    <xsl:value-of select="C/@Value4"/> <xsl:text> </xsl:text>
    <xsl:text>
    </xsl:text>
    </xsl:for-each>
    </xsl:for-each>
    </xsl:for-each>
    </xsl:template>
    </xsl:stylesheet>
    却总是得到这样的结果:(
    ANumber:50

    TestN: 1
    Location X: 0.3    Location Y: 10.2

    X Y Value1 Value2 Value3 Value4
    0 1 xx xx xx xx    --The Value of TestN:1 in ANumber50
    0 2 xx xx xx xx
    0 3 xx xx xx xx
    0 1 xx xx xx xx    --The Value of TestN:2 in ANumber50
    0 2 xx xx xx xx
    0 3 xx xx xx xx

    TestN: 2
    Location X: 10.2    Location Y: 10.2
    X Y Value1 Value2 Value3 Value4
    0 1 xx xx xx xx    --The Value of TestN:1 in ANumber50
    0 2 xx xx xx xx
    0 3 xx xx xx xx
    0 1 xx xx xx xx    --The Value of TestN:2 in ANumber50
    0 2 xx xx xx xx
    0 3 xx xx xx xx

    ANumber:51

    TestN: 1
    Location X: 0.3    Location Y: 10.2
    X Y Value1 Value2 Value3 Value4
    0 1 xx xx xx xx    --The Value of TestN:1 in ANumber51
    0 2 xx xx xx xx
    0 3 xx xx xx xx
    0 1 xx xx xx xx    --The Value of TestN:2 in ANumber51
    0 2 xx xx xx xx
    0 3 xx xx xx xx

    TestN: 2
    Location X: 10.2    Location Y: 10.2
    X Y Value1 Value2 Value3 Value4
    0 1 xx xx xx xx    --The Value of TestN:1 in ANumber51
    0 2 xx xx xx xx
    0 3 xx xx xx xx
    0 1 xx xx xx xx    --The Value of TestN:2 in ANumber51
    0 2 xx xx xx xx
    0 3 xx xx xx xx


       收藏   分享  
    顶(0)
      




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

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

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