新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   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:if test>中进行比较的问题. 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 2910 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 关于在<xsl:if test>中进行比较的问题. 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     lifangde125 美女呀,离线,快来找我吧!
      
      
      等级:大一(猛啃高等数学)
      文章:36
      积分:190
      门派:XML.ORG.CN
      注册:2004/10/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lifangde125发送一个短消息 把lifangde125加入好友 查看lifangde125的个人资料 搜索lifangde125在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lifangde125的博客楼主
    发贴心情 关于在<xsl:if test>中进行比较的问题.

    我的原 xml 程序如下
    <Package>
        <name>Stereotype</name>
        <OwnedElement>
            <Stereotype  xmi.id="001">
                <name>Steuerklasse</name>
        </OwnedElement>
        <OwnedElement>
            <Stereotype  xmi.id="002">
                <name>Servicesklasse</name>
        </OwnedElement>
    </Package>

    <Package>
        <name>Tasks</name>
        <OwnedElement>
            <class>
                <name>Stempaelanlage</name>
                <Stereotype  xmi.idref="001"/>
            </class>
            <class>
                <name>Services Stempaelanlage</name>
                <Stereotype  xmi.idref="002"/>
            </class>
        </OwnedElement>
    </Package>
    我想写一个xsl文件,其中将所有Stereotype是Steuerklasse的class定义为POU,
    <xsl:for-each select="Package/OwnedElement/class">
      <xsl:if test="Stereotype/@xmi.idref='001'">
        <POU>
         ...........
    但是我的老师说不对,不能对id进行比较,因为这个id的数字不是固定的,但是有一点是固定的,就是第二个Package 中Stereotype的xmi.idref一定是指第一个Package中相对应的Stereotype的id,也就是说我的class Stempelanlage的Stereotype是Steuerklasse, class Services Stempelanlage 的Stereotype是Servicesklasse.
    那我该怎么写才对呢?


       收藏   分享  
    顶(0)
      




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

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给doubleG发送一个短消息 把doubleG加入好友 查看doubleG的个人资料 搜索doubleG在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看doubleG的博客2
    发贴心情 
    可以这样:
    <xsl:variable name="stererotype" select="Package/OwnedElement/Stereotype[name='Steuerklasse']/@xmi.id"/>
    <xsl:for-each select="Package/OwnedElement/class">
      <xsl:if test="Stereotype/@xmi.idref=$stererotype">
        <POU>
         ...........
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/2/1 9:45:00
     
     lifangde125 美女呀,离线,快来找我吧!
      
      
      等级:大一(猛啃高等数学)
      文章:36
      积分:190
      门派:XML.ORG.CN
      注册:2004/10/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lifangde125发送一个短消息 把lifangde125加入好友 查看lifangde125的个人资料 搜索lifangde125在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lifangde125的博客3
    发贴心情 
    very good, thank you!!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/2/1 18:33:00
     
     lifangde125 美女呀,离线,快来找我吧!
      
      
      等级:大一(猛啃高等数学)
      文章:36
      积分:190
      门派:XML.ORG.CN
      注册:2004/10/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lifangde125发送一个短消息 把lifangde125加入好友 查看lifangde125的个人资料 搜索lifangde125在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lifangde125的博客4
    发贴心情 
    能继续问一下吗?在原xml文件中我还有一个package
    <package3 xmi.id="100">
      <name>Zustanddiagramm</name>
      <statemachine xmi.id="101">
        <name>anlauf</name>
        <statemachine.top>
          <Psendostate xmi.id="102"/>
        </statemachine.top>
      </statemachine>
      <statemachine xmi.id="103">
        <name>Stempelanlage</name>
        <statemachine.top>
          <Psendostate xmi.id="104"/>
        </statemachine.top>
      </statemachine>
    </package3>
    上面的第二个Package稍作改动
    <Package2>
        <name>Tasks</name>
        <OwnedElement>
            <class>
                <name>Stempelanlage</name>
                <Stereotype  xmi.idref="001"/>
                <behavior xmi.idref="103"/>
            </class>
            <class>
                <name>Services Stempaelanlage</name>
                <Stereotype  xmi.idref="002"/>
            </class>
        </OwnedElement>
    </Package2>

    在xslt中照你写的
    <xsl:variable name="stererotype" select="Package/OwnedElement/Stereotype[name='Steuerklasse']/@xmi.id"/>
    <xsl:for-each select="Package/OwnedElement/class">
      <xsl:if test="Stereotype/@xmi.idref=$stererotype">
        <POU>
            <xsl:for-each select="package/statemachine/statemachine.tpo/Psendostate">  
              <step>
                 <xsl:attribute name="name">start</xsl:attribute>
              </step>
            </xsl:for-each>
            .........
    我得到的输出中,Stempelanlage有两个step"start",我只希望将Stempelanlage自己的Psendostate定义成step,我能对Package3中<statemachine xmi.id>和Package2中class的<behavior xmi.idref>进行比较吗?如果相等就输出<Psendostate>?
    我用上面的方法试过,还是不对.

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

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给doubleG发送一个短消息 把doubleG加入好友 查看doubleG的个人资料 搜索doubleG在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看doubleG的博客5
    发贴心情 
    你是要只改Stereotype/@xmi.idref=$stererotype所对应的class吗?最好这样,你把你的源文件和想要的结果文件写出来才知道你到底想要怎样的结果,不然可能中间会有误解的。
    <xsl:for-each select="package/statemachine/statemachine.tpo/Psendostate">  这样的for-each循环当然会造成两个了,因为你没有任何条件限制。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/2/2 12:11:00
     
     lifangde125 美女呀,离线,快来找我吧!
      
      
      等级:大一(猛啃高等数学)
      文章:36
      积分:190
      门派:XML.ORG.CN
      注册:2004/10/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lifangde125发送一个短消息 把lifangde125加入好友 查看lifangde125的个人资料 搜索lifangde125在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lifangde125的博客6
    发贴心情 
    pou     Stempelanlage(class Stempelanlage with Stereotype "Steuerklasse")
    step    start(this start belong to statemachine "Stempelanlage")
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/2/2 17:31:00
     
     lifangde125 美女呀,离线,快来找我吧!
      
      
      等级:大一(猛啃高等数学)
      文章:36
      积分:190
      门派:XML.ORG.CN
      注册:2004/10/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lifangde125发送一个短消息 把lifangde125加入好友 查看lifangde125的个人资料 搜索lifangde125在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lifangde125的博客7
    发贴心情 
    问题已经解决了,谢谢
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/2/2 21:07: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/28 18:27:50

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

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