现在程序中是通过xmlHttp.responseXML获取了一个xml,格式如下<?xml version="1.0" encoding="UTF-8"?>
<response>
<device>358279018906196</device>
<lnglat>117.124844,31.986617,0.0 117.241917,32.017188,0.0</lnglat>
</response>
我是在获取lnglat节点内容是遇到问题,在Firefox下当lnglat节点的内容较多时,解析后获取的内容总是不完整,数据到某个长度就中断了。获取节点内容的代码如下:
var lnglat = xmlHttp.responseXML.getElementsByTagName("lnglat")[i].childNodes[0].nodeValue;
而同样的xml在IE和谷歌浏览器下获取节点内容均是完整的。有哪位高人指点下,感激不尽!

解决方案 »

  1.   

    不知道你所说的在Firefox下当lnglat节点的内容较多时,是多少?
    我这里测试正常,你最好给出出现问题的内容或者是内容长度,或者内容中是否含有其它字符,例如空格,换行,等等,因为FF下的 childNodes与IE下处理不同。你改用这种方式读取试下xmlHttp.responseXML.getElementsByTagName("response")[0].childNodes[1].firstChild.nodeValue在Firefox下当lnglat节点的内容较多时
      

  2.   

    to sundotLei:测试用的xml文档如下
    <?xml version="1.0" encoding="UTF-8"?>
    <response>
    <device>
    <deviceid>358279018906196</deviceid>
    <lnglat>117.279061,31.876882
     117.277745,31.876150
     117.272935,31.876835
     117.271844,31.889735
     117.270263,31.898995
     117.261199,31.918630
     117.260792,31.919403
     117.260422,31.920127
     117.260068,31.920851
     117.259633,31.921554
     117.259161,31.922262
     117.258673,31.922932
     117.258152,31.923592
     117.257611,31.924268
     117.257090,31.924992
     117.256591,31.925743
     117.256152,31.926468
     117.255733,31.927138
     117.255358,31.927943
     117.255105,31.928570
     117.254891,31.929182
     117.254703,31.929788
     117.254553,31.930400
     117.254424,31.931000
     117.254338,31.931596
     117.254258,31.932213
     117.254199,31.933055
     117.254177,31.933742
     117.254188,31.934439
     117.254188,31.935142
     117.254183,31.935845
     117.254194,31.936526
     117.254188,31.937207
     117.254188,31.937824
     117.254231,31.938457
     117.254290,31.939240
     117.254269,31.939862
     117.254215,31.940469
     117.254161,31.941069
     117.254081,31.941611
     117.254006,31.942089
     117.253877,31.942695
     117.253743,31.943194
     117.253582,31.943762
     117.253373,31.944395
     117.253072,31.945098
     117.252691,31.945838
     117.252327,31.946589
     117.251978,31.947303
     117.251645,31.947973
     117.251195,31.948891
     117.250900,31.949508
     117.250615,31.950141
     117.250379,31.950795
     117.250240,31.951476
     117.250176,31.952195
     117.250202,31.952941
     117.250369,31.953670
     117.250556,31.954411
     117.250835,31.955296
     117.251012,31.955966
     117.251141,31.956610
     117.251270,31.957270
     117.251425,31.957865
     117.251554,31.958397
     117.251737,31.958804
     117.252375,31.958724
     117.252917,31.958692
     117.253571,31.958740
     117.254086,31.958836
     117.254827,31.959099
     117.255309,31.959292
     117.255905,31.959502
     117.256302,31.959668
     117.256715,31.959840
     117.257149,31.960006
     117.257605,31.960178
     117.258061,31.960344
     117.258523,31.960494
     117.258973,31.960650
     117.259445,31.960811
     117.259917,31.960971
     117.260368,31.961143
     117.260888,31.961347
     117.261275,31.961122
     117.261527,31.960580
     117.261752,31.960119
     117.261988,31.959630
     117.262229,31.959164
     117.262412,31.958804
     117.262589,31.958407
     117.262793,31.957973
     117.263023,31.957511
     117.263254,31.957039
     117.263490,31.956562
     117.263721,31.956084
     117.263962,31.955639
     117.264161,31.955210
     117.264397,31.954883
     117.264584,31.954507
     117.264783,31.954067
     117.264944,31.953574
     117.265062,31.953075
     117.265169,31.952463
     117.265223,31.952029
     117.265341,31.951552
     117.265486,31.950752
     117.265582,31.950189
     117.265695,31.949658
     117.265802,31.949111
     117.265909,31.948617
     117.265985,31.948161
     117.266054,31.947748
     117.266135,31.947244
     117.266258,31.946713
     117.266344,31.946176
     117.266457,31.945629
     117.266569,31.945109
     117.266687,31.944674
     117.266762,31.944186
     117.266945,31.943467
     117.267084,31.942909
     117.267245,31.942298
     117.267395,31.941681
     117.267524,31.941112
     117.267653,31.940667
     117.267760,31.940222
     117.267884,31.939739
     117.268012,31.939256
     117.268173,31.938790
     117.268323,31.938366
     117.268458,31.937990
     117.268635,31.937615
     117.268838,31.937261
     117.269042,31.936901
     117.269278,31.936547
     117.269552,31.936209
     117.269852,31.935807
     117.270222,31.935405
     117.270614,31.935013
     117.270990,31.934621
     117.271376,31.934230
     117.271757,31.933833
     117.272121,31.933463
     117.272540,31.932980
     117.272771,31.932492
     117.272926,31.931961
     117.273039,31.931489
     117.273162,31.931006
     117.273285,31.930544
     117.273420,31.929997
     117.273548,31.929611
     117.273699,31.929037
     117.273843,31.928544
     117.273983,31.928061
     117.274122,31.927567
     117.274262,31.927084
     117.274380,31.926623
     117.274498,31.926167
     117.274643,31.925700
     117.274788,31.925196
     117.274927,31.924670
     117.275093,31.924145
     117.275238,31.923651
     117.275383,31.923201
     117.275528,31.922675
     117.275662,31.922101
     117.275823,31.921516
     117.276000,31.920953
     117.276166,31.920433
     117.276268,31.919939
     117.276338,31.919478
     117.276424,31.919049
     117.276472,31.918517
     117.276558,31.918094
     117.276681,31.917546
     117.276778,31.917080
     117.276842,31.916661
     117.276939,31.916055
     117.277003,31.915664
     117.277078,31.915218
     117.277169,31.914736
     117.277261,31.914247
     117.277352,31.913765
     117.277432,31.913250
     117.277534,31.912702
     117.277657,31.912187
     117.277738,31.911689
     117.277824,31.911152
     117.277926,31.910600
     117.278038,31.909940
     117.278119,31.909430
     117.278215,31.908904
     117.278317,31.908341
     117.278419,31.907880
     117.278478,31.907435
     117.278553,31.906957
     117.278655,31.906453
     117.278763,31.905965
     117.278838,31.905471
     117.278940,31.904967
     117.279031,31.904473
     117.279106,31.903991
     117.279143,31.903497
     117.279208,31.903046
     117.279331,31.902617
     117.279438,31.902161
     117.279562,31.901587
     117.279637,31.901190
     117.279696,31.900724
     117.279825,31.900085
     117.279932,31.899635
     117.279986,31.899141
     117.280061,31.898733
     117.280152,31.898176
     117.280243,31.897618
     117.280308,31.897242
     117.280420,31.896743
     117.280522,31.896282
     117.280592,31.895890
     117.280667,31.895440
     117.280715,31.894925
     117.280817,31.894388
     117.280892,31.893997
     117.280983,31.893557
     117.281059,31.893101
     117.281155,31.892618
     117.281252,31.892130
     117.281337,31.891711
     117.281407,31.891073
     117.281477,31.890681
     117.281563,31.890263
     117.281643,31.889823
     117.281702,31.889405
     117.281810,31.888970
     117.281917,31.888391
     117.282029,31.887812
     117.282126,31.887157
     117.282217,31.886567
     117.282325,31.885891
     117.282308,31.885344
     117.280317,31.871676
     117.282056,31.877617
    </lnglat>
    </device>
    <deviceol>358279018906196,</deviceol>
    </response>不好意思,跟一开始给的xml结构有点区别,所以你提供的取值方法不适用。能不能麻烦再帮我看看!谢谢
      

  3.   

    var lnglat = xmlHttp.responseXML.getElementsByTagName("lnglat");
    var  omber;
    for(var i=0;i<lnglat.length;i++)
    {
    omber=lnglat[i];
    var name=lnglat[i].getElementsByTagName("lnglat")[0].fistChild.nodeValue
    }
      

  4.   

    firefox对于node值的长度限制为4k,也说是4096个字符,当大于这个长度时,会被拆分为多个nodes
    你可以用你的xml文档来测试这两个值
    xmlHttp.responseXML.getElementsByTagName("lnglat")[0].childNodes.length //IE 下返回1
    //FF 下返回2,说明ff已将这个node拆分为2个.这样你应该就知道怎么处理了.
      

  5.   

    貌似OK啊:
    <xml id="response">
    <response>
    <device>
    <deviceid>358279018906196 </deviceid>
    <lnglat>117.279061,31.876882
    117.277745,31.876150
    117.272935,31.876835
    117.271844,31.889735
    117.270263,31.898995
    117.261199,31.918630
    117.260792,31.919403
    117.260422,31.920127
    117.260068,31.920851
    117.259633,31.921554
    117.259161,31.922262
    117.258673,31.922932
    117.258152,31.923592
    117.257611,31.924268
    117.257090,31.924992
    117.256591,31.925743
    117.256152,31.926468
    117.255733,31.927138
    117.255358,31.927943
    117.255105,31.928570
    117.254891,31.929182
    117.254703,31.929788
    117.254553,31.930400
    117.254424,31.931000
    117.254338,31.931596
    117.254258,31.932213
    117.254199,31.933055
    117.254177,31.933742
    117.254188,31.934439
    117.254188,31.935142
    117.254183,31.935845
    117.254194,31.936526
    117.254188,31.937207
    117.254188,31.937824
    117.254231,31.938457
    117.254290,31.939240
    117.254269,31.939862
    117.254215,31.940469
    117.254161,31.941069
    117.254081,31.941611
    117.254006,31.942089
    117.253877,31.942695
    117.253743,31.943194
    117.253582,31.943762
    117.253373,31.944395
    117.253072,31.945098
    117.252691,31.945838
    117.252327,31.946589
    117.251978,31.947303
    117.251645,31.947973
    117.251195,31.948891
    117.250900,31.949508
    117.250615,31.950141
    117.250379,31.950795
    117.250240,31.951476
    117.250176,31.952195
    117.250202,31.952941
    117.250369,31.953670
    117.250556,31.954411
    117.250835,31.955296
    117.251012,31.955966
    117.251141,31.956610
    117.251270,31.957270
    117.251425,31.957865
    117.251554,31.958397
    117.251737,31.958804
    117.252375,31.958724
    117.252917,31.958692
    117.253571,31.958740
    117.254086,31.958836
    117.254827,31.959099
    117.255309,31.959292
    117.255905,31.959502
    117.256302,31.959668
    117.256715,31.959840
    117.257149,31.960006
    117.257605,31.960178
    117.258061,31.960344
    117.258523,31.960494
    117.258973,31.960650
    117.259445,31.960811
    117.259917,31.960971
    117.260368,31.961143
    117.260888,31.961347
    117.261275,31.961122
    117.261527,31.960580
    117.261752,31.960119
    117.261988,31.959630
    117.262229,31.959164
    117.262412,31.958804
    117.262589,31.958407
    117.262793,31.957973
    117.263023,31.957511
    117.263254,31.957039
    117.263490,31.956562
    117.263721,31.956084
    117.263962,31.955639
    117.264161,31.955210
    117.264397,31.954883
    117.264584,31.954507
    117.264783,31.954067
    117.264944,31.953574
    117.265062,31.953075
    117.265169,31.952463
    117.265223,31.952029
    117.265341,31.951552
    117.265486,31.950752
    117.265582,31.950189
    117.265695,31.949658
    117.265802,31.949111
    117.265909,31.948617
    117.265985,31.948161
    117.266054,31.947748
    117.266135,31.947244
    117.266258,31.946713
    117.266344,31.946176
    117.266457,31.945629
    117.266569,31.945109
    117.266687,31.944674
    117.266762,31.944186
    117.266945,31.943467
    117.267084,31.942909
    117.267245,31.942298
    117.267395,31.941681
    117.267524,31.941112
    117.267653,31.940667
    117.267760,31.940222
    117.267884,31.939739
    117.268012,31.939256
    117.268173,31.938790
    117.268323,31.938366
    117.268458,31.937990
    117.268635,31.937615
    117.268838,31.937261
    117.269042,31.936901
    117.269278,31.936547
    117.269552,31.936209
    117.269852,31.935807
    117.270222,31.935405
    117.270614,31.935013
    117.270990,31.934621
    117.271376,31.934230
    117.271757,31.933833
    117.272121,31.933463
    117.272540,31.932980
    117.272771,31.932492
    117.272926,31.931961
    117.273039,31.931489
    117.273162,31.931006
    117.273285,31.930544
    117.273420,31.929997
    117.273548,31.929611
    117.273699,31.929037
    117.273843,31.928544
    117.273983,31.928061
    117.274122,31.927567
    117.274262,31.927084
    117.274380,31.926623
    117.274498,31.926167
    117.274643,31.925700
    117.274788,31.925196
    117.274927,31.924670
    117.275093,31.924145
    117.275238,31.923651
    117.275383,31.923201
    117.275528,31.922675
    117.275662,31.922101
    117.275823,31.921516
    117.276000,31.920953
    117.276166,31.920433
    117.276268,31.919939
    117.276338,31.919478
    117.276424,31.919049
    117.276472,31.918517
    117.276558,31.918094
    117.276681,31.917546
    117.276778,31.917080
    117.276842,31.916661
    117.276939,31.916055
    117.277003,31.915664
    117.277078,31.915218
    117.277169,31.914736
    117.277261,31.914247
    117.277352,31.913765
    117.277432,31.913250
    117.277534,31.912702
    117.277657,31.912187
    117.277738,31.911689
    117.277824,31.911152
    117.277926,31.910600
    117.278038,31.909940
    117.278119,31.909430
    117.278215,31.908904
    117.278317,31.908341
    117.278419,31.907880
    117.278478,31.907435
    117.278553,31.906957
    117.278655,31.906453
    117.278763,31.905965
    117.278838,31.905471
    117.278940,31.904967
    117.279031,31.904473
    117.279106,31.903991
    117.279143,31.903497
    117.279208,31.903046
    117.279331,31.902617
    117.279438,31.902161
    117.279562,31.901587
    117.279637,31.901190
    117.279696,31.900724
    117.279825,31.900085
    117.279932,31.899635
    117.279986,31.899141
    117.280061,31.898733
    117.280152,31.898176
    117.280243,31.897618
    117.280308,31.897242
    117.280420,31.896743
    117.280522,31.896282
    117.280592,31.895890
    117.280667,31.895440
    117.280715,31.894925
    117.280817,31.894388
    117.280892,31.893997
    117.280983,31.893557
    117.281059,31.893101
    117.281155,31.892618
    117.281252,31.892130
    117.281337,31.891711
    117.281407,31.891073
    117.281477,31.890681
    117.281563,31.890263
    117.281643,31.889823
    117.281702,31.889405
    117.281810,31.888970
    117.281917,31.888391
    117.282029,31.887812
    117.282126,31.887157
    117.282217,31.886567
    117.282325,31.885891
    117.282308,31.885344
    117.280317,31.871676
    117.282056,31.877617
    </lnglat>
    </device>
    <deviceol>358279018906196, </deviceol>
    </response>
    </xml>
    <script type="text/javascript">var dx = document.getElementById('response');
    if(/msie/i.test(navigator.appVersion)){
        var dlng = dx.XMLDocument.selectSingleNode('response/device/lnglat');
        alert(dlng.text.length);
    }else{
        var dlng = dx.getElementsByTagName('lnglat')[0];
        alert(dlng.innerHTML.length);
    }
    </script>
      

  6.   

    to sundotLei:
    首先十分感谢你的帮忙,现在问题已经解决了。
    感激之余,我还想请教一下你是从哪里查到Firefox下对xml节点长度的限制的?我也思考过可能是过关于节点长度的问题,但都没有找到关于这方面的明确规定。那ie下面是否也有类似的规定,只是我现在节点长度还没有达到它所规定的长度,所以才可能正确的取值?
    to dh20156:
    也要感谢你热心的帮忙,虽然没有使用你说的方法,呵呵。给分啦!
      

  7.   


    http://www.coderholic.com/firefox-4k-xml-node-limit/IE下貌似没有.