以文本方式查看主题 - 计算机科学论坛 (http://bbs.xml.org.cn/index.asp) -- 『 XSL/XSLT/XSL-FO/CSS 』 (http://bbs.xml.org.cn/list.asp?boardid=8) ---- 通过xslt将子网掩码转换为IP形式 (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=51562) |
-- 作者:自由风 -- 发布时间:8/20/2007 11:57:00 AM -- 通过xslt将子网掩码转换为IP形式 将<pe_static_route>10.10.41.0/25</pe_static_route> 中的子网掩码25转换成IP形式,及:255.255.255.128; 也就是说25代表25个1,及:11111111.11111111.1111111.10000000转换成10进制就是:255.255.255.128; 目前的问题是25是一变量,请教各位高手这样子的转换template怎么写?
|
-- 作者:Qr -- 发布时间:8/22/2007 12:33:00 PM -- 用/n后的n值 div 8取整就知道有 i 组11111111,这就得到 i 个255和 4-i 组8位二进制数,有多少组有1和0的也就能计算出来了,全0的不用转换,只须转换有1和0的一组。二进制转十进制不用偶教你了吧。 现在没时间,只能给你个思路,有时间再写代码吧。 |
-- 作者:Qr -- 发布时间:8/22/2007 6:50:00 PM -- 代码中2进制转10进制本来是用递归的,但是想想要用两个模板嵌套就晕了,直接用<xsl:when>来实现这个功能了,长了很多,不喜欢就自己改递归吧。 <?xml version="1.0" encoding="gb2312"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:template match="pe_static_route"> <xsl:variable name="N1"> <xsl:variable name="N" select="$N1+$N2+$N3+$N4+$N5+$N6+$N7"/> <font color="red"> </xsl:template> </xsl:stylesheet> |
-- 作者:自由风 -- 发布时间:9/17/2007 4:23:00 PM -- 太感谢Qr大哥了 前几天着急用,我自己用最笨的办法弄了一个判断如下: <?xml version="1.0" encoding="UTF-8"?> <ip_mask> <xsl:variable name="mask"> <xsl:value-of select="ip_mask"/> </xsl:variable> <xsl:variable name="mask0"> <xsl:value-of select="number($mask)"/> </xsl:variable> <xsl:variable name="mask1"> <xsl:value-of select="floor(($mask0)div(8))"/> </xsl:variable> <xsl:variable name="mask2"> <xsl:value-of select="($mask0)mod(8)"/> </xsl:variable> <xsl:choose> <xsl:when test="$mask1=0"> <xsl:choose> <xsl:when test="$mask2=0">0.0.0.0</xsl:when> <xsl:when test="$mask2=1">128.0.0.0</xsl:when> <xsl:when test="$mask2=2">192.0.0.0</xsl:when> <xsl:when test="$mask2=3">224.0.0.0</xsl:when> <xsl:when test="$mask2=4">240.0.0.0</xsl:when> <xsl:when test="$mask2=5">248.0.0.0</xsl:when> <xsl:when test="$mask2=6">252.0.0.0</xsl:when> <xsl:when test="$mask2=7">254.0.0.0</xsl:when> </xsl:choose> </xsl:when> <xsl:when test="$mask1=1"> <xsl:choose> <xsl:when test="$mask2=0">255.0.0.0</xsl:when> <xsl:when test="$mask2=1">255.128.0.0</xsl:when> <xsl:when test="$mask2=2">255.192.0.0</xsl:when> <xsl:when test="$mask2=3">255.224.0.0</xsl:when> <xsl:when test="$mask2=4">255.240.0.0</xsl:when> <xsl:when test="$mask2=5">255.248.0.0</xsl:when> <xsl:when test="$mask2=6">255.252.0.0</xsl:when> <xsl:when test="$mask2=7">255.254.0.0</xsl:when> </xsl:choose> </xsl:when> <xsl:when test="$mask1=2"> <xsl:choose> <xsl:when test="$mask2=0">255.255.0.0</xsl:when> <xsl:when test="$mask2=1">255.255.128.0</xsl:when> <xsl:when test="$mask2=2">255.255.192.0</xsl:when> <xsl:when test="$mask2=3">255.255.224.0</xsl:when> <xsl:when test="$mask2=4">255.255.240.0</xsl:when> <xsl:when test="$mask2=5">255.255.248.0</xsl:when> <xsl:when test="$mask2=6">255.255.252.0</xsl:when> <xsl:when test="$mask2=7">255.255.254.0</xsl:when> </xsl:choose> </xsl:when> <xsl:when test="$mask1=3"> <xsl:choose> <xsl:when test="$mask2=0">255.255.255.0</xsl:when> <xsl:when test="$mask2=1">255.255.255.128</xsl:when> <xsl:when test="$mask2=2">255.255.255.192</xsl:when> <xsl:when test="$mask2=3">255.255.255.224</xsl:when> <xsl:when test="$mask2=4">255.255.255.240</xsl:when> <xsl:when test="$mask2=5">255.255.255.248</xsl:when> <xsl:when test="$mask2=6">255.255.255.252</xsl:when> <xsl:when test="$mask2=7">255.255.255.254</xsl:when> </xsl:choose> </xsl:when> </xsl:choose> </ip_mask> |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
62.500ms |