JS解析XML文件(跨浏览器)
来源:互联网 发布:汉朝 知乎 编辑:程序博客网 时间:2024/05/17 05:12
问题描述:
对指定xml文件进行解析,并显示解析出的内容。(给一个指定ip查询是否在xml文件中的ip范围内)
xml文件内容如下:
<?xml version="1.0" encoding="utf-8"?><AzurePublicIpAddresses xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Region Name="europewest"> <IpRange Subnet="40.112.124.0/24" /> <IpRange Subnet="65.52.128.0/19" /> <IpRange Subnet="94.245.97.0/24" /> <IpRange Subnet="104.47.169.0/24" /> <IpRange Subnet="104.214.240.0/24" /> <IpRange Subnet="137.116.192.0/19" /> <IpRange Subnet="168.63.0.0/19" /> <IpRange Subnet="168.63.96.0/20" /></Region></AzurePublicIpAddresses>JS代码:function loadXMLDoc(dname) {try //Internet Explorer {xmlDoc=new ActiveXObject("Microsoft.XMLDOM");xmlDoc.async=false;xmlDoc.load(dname); }catch(e) { try //Firefox, Mozilla, Opera, etc. { xmlDoc=document.implementation.createDocument("","",null); xmlDoc.async=false; xmlDoc.load(dname); } catch(e) {//chrome try {var xmlhttp=new window.XMLHttpRequest();xmlhttp.open("GET",dname,false);xmlhttp.send(null);xmlDoc=xmlhttp.responseXML.documentElement;} catch(e){alert("error")} } }return xmlDoc;}function Cloud_Platform(ip){var answer="非云平台";xmlDoc=loadXMLDoc('../../assets/ip_range/Azure_ip-ranges.xml');x=xmlDoc.getElementsByTagName('Region');for (i=0;i<x.length;i++){var region=x[i].getAttribute("Name");item=x[i].getElementsByTagName('IpRange');for(j=0; j<item.length; j++){ip_range=item[j].getAttribute("Subnet");if(Get_IP_Range(ip_range, ip)==true){answer=region+" Azure";document.getElementById("ip_location").innerText=answer}}}}function Get_IP_Range(ip_cidr, ip)//eg:172.10.10.0/15 172.10{var endip=['255', '255', '255', '255'];var mid=ip_cidr.split('/');var net=mid[0];//eg:172.10.10.0var mask=parseInt(mid[1]);//eg:15var ipsplit=net.split('.');if(mask%8==0){for(var i=0; i<(mask/8); i++)endip[i]=ipsplit[i];}else{for(var i=0; i<Math.floor((mask/8)); i++)endip[i]=ipsplit[i];endip[Math.floor(mask/8)]=""+(parseInt(ipsplit[Math.floor(mask/8)])+Math.pow(2,(8-mask%8-1)));}var aaa=ipToInt(ip.split('.'));var bbb=ipToInt(ipsplit);var ccc=ipToInt(endip);if( aaa>=bbb && aaa<=ccc)return true;else return false;}function ipToInt(IP){return parseInt(IP[0])*256*256*256+parseInt(IP[1])*256*256+parseInt(IP[2])*256+parseInt(IP[3]);}
阅读全文
0 0
- JS解析XML文件(跨浏览器)
- JS解析XML文件和字符串的跨浏览器实现
- js解析xml文件(针对非IE浏览器)
- 跨浏览器解析XML文件(二)
- JS跨浏览器解析XML应用
- 解析 XML 文件 - 跨浏览器实例
- js解析XML 浏览器兼容
- JS读取XML文件(兼容浏览器)
- JS读取XML文件(兼容浏览器)
- js解析xml文件
- js解析xml文件
- js解析xml文件
- JS解析XML文件
- JS解析xml文件
- JS解析xml文件
- js解析xml文件
- JS 解析XML文件
- js解析xml文件
- Tensorflow基础:变量管理
- Java中删除 List 元素的三种正确方法
- LOJ 505 网络流建图
- OSGi入门必读系列之《OSGi是什么:Java语言的动态模块系统》
- 阿丹学理财之资产配置
- JS解析XML文件(跨浏览器)
- HDU-3478 Catch(二分图染色+并查集)
- C语言再学习之:指针详解(1)
- SXSSFSheet调用createRow报错,并且调用getLastRowNum一直为0的问题
- sasas
- html_AngularJs简单使用
- JAVA语言程序设计 基础篇 读书笔记(前两章)
- Laravel学习1-创建项目
- zookeeper 启动失败