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

    >> 本版讨论XSL,XSLT,XSL-FO,CSS等技术
    [返回] W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWLXML.ORG.CN讨论区 - XML技术『 XSL/XSLT/XSL-FO/CSS 』 → 怎么把文件路径中的“\”不丢失的传给javascript函数呢? 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 5484 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 怎么把文件路径中的“\”不丢失的传给javascript函数呢? 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     e_jsjszg 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:3
      积分:58
      门派:XML.ORG.CN
      注册:2008/9/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给e_jsjszg发送一个短消息 把e_jsjszg加入好友 查看e_jsjszg的个人资料 搜索e_jsjszg在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看e_jsjszg的博客楼主
    发贴心情 怎么把文件路径中的“\”不丢失的传给javascript函数呢?

    xml文件为:
    <Filelist>
        <File Path="e:\folder1\file1.txt" CompareFile="e:\basefile\folder1\file1.txt" />
        <File Path="e:\folder1\file2.txt" CompareFile="e:\basefile\folder1\file2.txt" />
    </Filelist>

    xsl文件:
    <a href="javascript:">
        <xsl:attribute name="onclick">
            var   oShell   =   new   ActiveXObject("WScript.Shell");   
            oShell.Run("\"C:\\Program Files\\Beyond Compare 2\\bc2.exe\" <xsl:value-of select='@Path'/>   <xsl:text>  </xsl:text> <xsl:value-of select='@CompareFile'/> ");   
        </xsl:attribute>
        Compare the files
    </a>

    用xsl文件解析,并调用BeyondCompare工具比较两个文件
    可是,传入runExe函数的参数中文件路径@Path 和@CompareFile的“\”丢失了。用translate将“\”替换成“\\”也没用:
    <xsl:variable name="file1" select="translate(@Path,'\','\\')"/>
    <xsl:variable name="file2" select="translate(@CompareFile,'\','\\')"/>
    <a href="javascript:">
        <xsl:attribute name="onclick">
            var   oShell   =   new   ActiveXObject("WScript.Shell");   
            oShell.Run("\"C:\\Program Files\\Beyond Compare 2\\bc2.exe\" <xsl:value-of select='$file1'/>   <xsl:text>  </xsl:text> <xsl:value-of select='$file1'/> ");   
        </xsl:attribute>
        Compare the files
    </a>

    不知道是什么原因,怎么处理呢?

    谢谢!!


       收藏   分享  
    顶(0)
      




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

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Qr发送一个短消息 把Qr加入好友 查看Qr的个人资料 搜索Qr在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 访问Qr的主页 引用回复这个贴子 回复这个贴子 查看Qr的博客2
    发贴心情 
    <xsl:value-of select='@Path'/>得到的是完整的文件路径,也就是说此时“\”并没有丢失,丢失的原因是因为javascript,所以你的XML中Path的路径需要使用“\\”,才能避免。
    另外你没理解translate的用法,translate(@Path,'\','\\')并不会将'\'替换成'\\',反而是删除'\',因为translate()后两个参数中有相同字符,要想translate()实现替换功能,除非是第2、3个参数分别是相应的大小写字母。所以你别指望translate()能帮你将'\'替换成'\\'。如果不想修改XML,而通过XSL实现,除非你用XPath中的字符串处理函数,将Path拆分然后加入一个“\”并重新组合。

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

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

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/9/22 19:51: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/7/5 4:53:07

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

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