16
2012
04

JS读写XML文件

以下代码是在引用GOOGLE地图做地理系统的时候写的一小段。

详细情况 ,请仔细读读吧,呵呵。

JavaScript

<script type="text/javascript">
    //<![CDATA[
    //嵌入CDATA段可以防止不兼容Javacript的浏览器不产生错误信息
    //增加正则表达式
    String.prototype.getQueryString = function(name) {
        var reg = new RegExp("(^|&|\\?)" + name + "=([^&]*)(&|$)"), r;
        if (r = this.match(reg)) return unescape(r[2]);
        return null;
    };
    var address = location.search.getQueryString("address"); //通过表达式获得传递参数
    //针对两种浏览器,分别获取xmlDocument对象// 读取XML文件  
    function loadXML(xmlFile) {
        var xmlDoc;
        if (window.ActiveXObject) {
            xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc.async = false;
            xmlDoc.load(xmlFile);
        }
        else if (document.implementation && document.implementation.createDocument) {
            xmlDoc = document.implementation.createDocument("", "", null);
            xmlDoc.async = false;
            xmlDoc.load(xmlFile);
        } else {
            alert('您的浏览器不支持该系统脚本!');
        }
        return xmlDoc;
    }  
    //调用地图
    var map; //全局GMap GOOGLE 地图 API
    function load() {
        if (GBrowserIsCompatible()) //检查浏览器兼容性
        {
            map = new GMap2(document.getElementById("map")); //地图加栽到ID为map的DIV中。
            map.addControl(new GSmallMapControl());   //添加Gcontrol控件//放大缩小的那个
            map.setCenter(new GLatLng(26.577014, 104.877977), 15); //设置地图中心
            //创建多个坐标点(从INFO.XML文件中读取)
            var xmlDoc = loadXML("Info.xml");
            var members = xmlDoc.getElementsByTagName("number");
            var maxRes = members.length;
            for (var i = 0; i <= maxRes; i++) {                       //XML中记录了多个坐标点,要每个点都标记一下
                var oName = members[i].getElementsByTagName("name");
                var oLongitude = members[i].getElementsByTagName("Longitude");
                var oLatitude = members[i].getElementsByTagName("Latitude");

                var name = oName[0].firstChild.nodeValue
                var Longitude = oLongitude[0].firstChild.nodeValue
                var Latitude = oLatitude[0].firstChild.nodeValue       
               
                var marker = new GMarker(new GLatLng(Longitude, Latitude), { title: name });     //对每个点添加标记
                marker.openInfoWindowHtml("<div style=line-height:20px;text-align:center;font-size:12px;'><a href=Left.aspx?info=" + name + " target=framLeft>" + name + ",点击查看信息</a></div>");
                map.addOverlay(marker);
            }
        }
    }
    //]]>
</script>


XML文件

<?xml version="1.0" encoding="GB2312"?>  
<earth>  
<number id='1'>   
<name>213211212213213</name>  
<Longitude>26.577014</Longitude>  
<Latitude>104.877977</Latitude></number>  
<number id='2'>   
<name>112312332131212</name>  
<Longitude>26.586685</Longitude>  
<Latitude>104.863815</Latitude></number>  
<number id='3'>   
<name>123123121323112</name>  
<Longitude>26.572101</Longitude>  
<Latitude>104.866905</Latitude></number>  
<number id='4'>   
<name>123132123123321</name>  
<Longitude>26.572254</Longitude>  
<Latitude>104.891624</Latitude></number>  
</earth>

« 上一篇下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。