CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  XML/SOAP

用XSLT可以把XML中的数据转化为十六进制显示出来吗?

楼主hellolwl(hello,lwl)2003-09-01 17:40:35 在 Web 开发 / XML/SOAP 提问

XSLT可以实现这样的功能吗?如果可以,应该怎么做?  
  我的XML文件如下:  
  <?xml   version="1.0"   encoding="UTF-8"?>  
  <?xml-stylesheet   type="text/xsl"   href="Protocol.xsl"?>  
  <Protocol>  
  <HDLC>  
  <FLAG>01111110</FLAG>  
  <ADDR>255</ADDR>  
  <CONTROL>01011010</CONTROL>  
  <INFO>报文演示</INFO>  
  <FCS>7C56</FCS>  
  <FLAG>01111110</FLAG>  
  </HDLC>  
  <IP>  
  <FLAG>911</FLAG>  
  </IP>  
  </Protocol>  
  要求显示出来后,这些值都是十六进制 问题点数:100、回复次数:4Top

1 楼saucer(思归)回复于 2003-09-01 21:47:43 得分 0

see  
   
  http://www.dpawson.co.uk/xsl/sect2/N5121.html#d1052e484  
   
  or   try  
   
  <xsl:stylesheet   version="1.0"   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
  <xsl:template   match="/">  
    <xsl:call-template   name="printHex">  
      <xsl:with-param   name="number"   select="Protocol/IP/FLAG"   />  
    </xsl:call-template>  
  </xsl:template>  
   
   
  <xsl:template   name="printHex">  
      <xsl:param   name="number">0</xsl:param>  
   
      <xsl:variable   name="low">  
          <xsl:value-of   select="$number   mod   16"/>  
      </xsl:variable>  
   
      <xsl:variable   name="high">  
          <xsl:value-of   select="floor($number   div   16)"/>  
      </xsl:variable>  
   
      <xsl:choose>  
          <xsl:when   test="$high   &gt;   0">  
              <xsl:call-template   name="printHex">  
                  <xsl:with-param   name="number">  
                      <xsl:value-of   select="$high"/>  
                  </xsl:with-param>  
              </xsl:call-template>      
          </xsl:when>  
          <xsl:otherwise>  
              <xsl:text>0x</xsl:text>  
          </xsl:otherwise>  
      </xsl:choose>      
   
      <xsl:choose>  
          <xsl:when   test="$low   &lt;   10">  
              <xsl:value-of   select="$low"/>  
          </xsl:when>  
          <xsl:otherwise>  
              <xsl:variable   name="temp">  
                  <xsl:value-of   select="$low   -   10"/>  
              </xsl:variable>  
   
              <xsl:value-of   select="translate($temp,   '012345',   'ABCDEF')"/>  
          </xsl:otherwise>  
      </xsl:choose>  
  </xsl:template>      
   
   
  </xsl:stylesheet>  
  Top

2 楼hellolwl(hello,lwl)回复于 2003-09-01 23:18:25 得分 0

我试了一下,结果不对啊,我把  
  <xsl:with-param   name="number"   select="Protocol/IP/FLAG"   />  
  改成<xsl:with-param   name="number"   select="Protocol/HDLC/FLAG"   />  
  结果是0x10F446,而01111110转化为十六进制应该是7E才对,能不能再帮忙看一下呢,本人接触XML/XSL没几天,谢谢了Top

3 楼saucer(思归)回复于 2003-09-01 23:24:39 得分 100

how   does   XSLT   whether   your   number   is   binary   or   decimal??   the   above   code   only   works   for   decimalTop

4 楼hellolwl(hello,lwl)回复于 2003-09-01 23:28:08 得分 0

I   know,3xTop

相关问题

  • 十六进制转化成十进制
  • 关于C语言转化为十六进制的软件
  • 怎样把十六进制转化为汉字?
  • 十六进制如何转化为十进制输出
  • 菜鸟问题:浮点数转化为十六进制
  • 十进制数转化为十六进制数
  • 求十进制数转化为十六进制数的程序?
  • 如何将C#字符直接转化为十六进制数
  • 如何把字符串转化为十六进制?
  • 求十进制转化为十六进制算法,50分求救。

关键词

  • xml
  • 转化
  • xslt
  • xsl
  • 显示
  • 转化为十六进制
  • decimal
  • 结果
  • 应该

得分解答快速导航

  • 帖主:hellolwl
  • saucer

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo