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

    >> 本版讨论XSL,XSLT,XSL-FO,CSS等技术
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XSL/XSLT/XSL-FO/CSS 』 → 有没有办法用 XSLT/XPath转换 实现 XML中 attribute 值的计算?[求助] 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 8274 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 有没有办法用 XSLT/XPath转换 实现 XML中 attribute 值的计算?[求助] 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     绿洲 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:5
      积分:72
      门派:XML.ORG.CN
      注册:2005/11/15

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给绿洲发送一个短消息 把绿洲加入好友 查看绿洲的个人资料 搜索绿洲在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看绿洲的博客楼主
    发贴心情 有没有办法用 XSLT/XPath转换 实现 XML中 attribute 值的计算?[求助]

    有没有办法用 XSLT/XPath转换 实现 XML中 attribute 值的计算?

    例如:  
    <layout>
      <region id="reg1" top="0" left="0" height="240" width="2*160"/>
      <region id="reg2" top="0" left="500" height="240" width="max(320,240)"/>
    </layout>

    通过 XSLT/XPath 转换后得到:
    <layout>
      <region id="reg1" top="0" left="0" height="240" width="320"/>
      <region id="reg2" top="0" left="500" height="240" width="320"/>
    </layout>

    可以加一个象函数名一样的东西,如 width="calculate(2*120)"  或  width="calculate(max(320,240))"

    或者除了XSLT/XPath 有什么别的方法来实现?

    谢谢!!!!!


    [此贴子已经被作者于2005-11-16 16:40:45编辑过]

       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/11/15 17:32:00
     
     zon 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究C++)
      文章:57
      积分:280
      门派:XML.ORG.CN
      注册:2005/9/26

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给zon发送一个短消息 把zon加入好友 查看zon的个人资料 搜索zon在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看zon的博客2
    发贴心情 

    试试下面的:
    <xsl:for-each select="//region">
         <input style="LEFT:{number(@left)}px; TOP:{number(@top)}px; width:{number(@width)}px; height:{number(@height)}px" id="{./@id}" />
        </xsl:for-each>
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/11/15 18:09:00
     
     绿洲 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:5
      积分:72
      门派:XML.ORG.CN
      注册:2005/11/15

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给绿洲发送一个短消息 把绿洲加入好友 查看绿洲的个人资料 搜索绿洲在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看绿洲的博客3
    发贴心情 
    好象不行,不可以返回  max(320,240)  结果
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/11/15 18:33:00
     
     绿洲 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:5
      积分:72
      门派:XML.ORG.CN
      注册:2005/11/15

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给绿洲发送一个短消息 把绿洲加入好友 查看绿洲的个人资料 搜索绿洲在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看绿洲的博客4
    发贴心情 
    还有没有高手可以解决啊?  急啊!!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/11/16 14:32:00
     
     Qr 帅哥哟,离线,有人找我吗?
      
      
      威望:9
      等级:博士二年级(版主)
      文章:4392
      积分:29981
      门派:XML.ORG.CN
      注册:2004/5/15

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Qr发送一个短消息 把Qr加入好友 查看Qr的个人资料 搜索Qr在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 访问Qr的主页 引用回复这个贴子 回复这个贴子 查看Qr的博客5
    发贴心情 
    width="max(320,240)" 在XML中width的值不可能返回一个数字,所以你这种用法肯定得不到你想要的结果。
    max()这个方法在XSL中有没有偶没有注意,但如果你要实现给width赋值,不可能在XML中实现计算赋值,可借助XSL,如2楼的方法,但必须确认XSL中有max()这个方法。如果没有,可能通过JAVASCRIPT脚本函数来实现。

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

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

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/11/17 12:48:00
     
     绿洲 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:5
      积分:72
      门派:XML.ORG.CN
      注册:2005/11/15

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给绿洲发送一个短消息 把绿洲加入好友 查看绿洲的个人资料 搜索绿洲在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看绿洲的博客6
    发贴心情 
    以下是引用Qr在2005-11-17 12:48:00的发言:
    width="max(320,240)" 在XML中width的值不可能返回一个数字,所以你这种用法肯定得不到你想要的结果。
    max()这个方法在XSL中有没有偶没有注意,但如果你要实现给width赋值,不可能在XML中实现计算赋值,可借助XSL,如2楼的方法,但必须确认XSL中有max()这个方法。如果没有,可能通过JAVASCRIPT脚本函数来实现。

    javascript脚本 可以写在 XSL Stylesheet 中吗?  怎样嵌进去?

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

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

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

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

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/11/18 9:23:00
     
     zon 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究C++)
      文章:57
      积分:280
      门派:XML.ORG.CN
      注册:2005/9/26

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给zon发送一个短消息 把zon加入好友 查看zon的个人资料 搜索zon在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看zon的博客8
    发贴心情 
    楼主搞出来了没?
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/11/21 9:48:00
     
     98900969r 帅哥哟,离线,有人找我吗?
      
      
      威望:8
      等级:大四寒假(收到MIT的Offer啦)
      文章:235
      积分:1555
      门派:XML.ORG.CN
      注册:2005/11/2

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给98900969r发送一个短消息 把98900969r加入好友 查看98900969r的个人资料 搜索98900969r在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看98900969r的博客9
    发贴心情 
    下面这一段是我在别处复过的,这里再帖一次,因为这个问题实际上是讨论xslt的通用性和扩充性,而楼上的几位都对这个问题有实用的建议,凑到这里以形成一个比较集中的讨论。

    要在xslt中做点比较复杂的字符处理和数学运算是不大方便,因而1.0版中就提供了两种扩充方式。一是用script,如Qr所讲的。另外就是调用外部函数,这个没有统一的标准,取决于具体的xslt实现。实际上用script也没有标准,但是对JavaScript支持得比较多,相当于有标准。

    XPath 2.0 中增加了不少字符处理函数,也增加了max,min这样的函数。而xslt 2.0中加入了xsl:function这样一个元素,让人可以像用xsl:template定义模板一样定义自己的函数,然后在stylesheet中随时调用。不但如此,自定义函数还可以在XPath表达式中任意调用。这是相当强大的功能,相当于往SQL中加入了自定义函数,这样的功能只有近几年才在数据库中实现。

    <!-- <<<<<<<<<<<<<<<<<<<<<
    如果不求助script,可以做个命名template,让它产生一个node set。在调用是,把call-template放在一个变量,等call-template返回后,变量就接受了它的输出,相当于是返回值。代码大致如下:

    <variable name=v1>
      <call-template name="calculate-width">
        <with-param name="param1" select="@width"/>
      </call-template>
    </variable>
    <!-- >>>>>>>>>>>>>>> -->

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/11/23 0:21:00
     
     algorithm 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(Java考了96分!)
      文章:69
      积分:368
      门派:XML.ORG.CN
      注册:2005/12/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给algorithm发送一个短消息 把algorithm加入好友 查看algorithm的个人资料 搜索algorithm在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看algorithm的博客10
    发贴心情 
    a
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/1/7 11: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 21:04:54

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

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