现在程序中是通过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和谷歌浏览器下获取节点内容均是完整的。有哪位高人指点下,感激不尽!
<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和谷歌浏览器下获取节点内容均是完整的。有哪位高人指点下,感激不尽!
我这里测试正常,你最好给出出现问题的内容或者是内容长度,或者内容中是否含有其它字符,例如空格,换行,等等,因为FF下的 childNodes与IE下处理不同。你改用这种方式读取试下xmlHttp.responseXML.getElementsByTagName("response")[0].childNodes[1].firstChild.nodeValue在Firefox下当lnglat节点的内容较多时
<?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结构有点区别,所以你提供的取值方法不适用。能不能麻烦再帮我看看!谢谢
var omber;
for(var i=0;i<lnglat.length;i++)
{
omber=lnglat[i];
var name=lnglat[i].getElementsByTagName("lnglat")[0].fistChild.nodeValue
}
你可以用你的xml文档来测试这两个值
xmlHttp.responseXML.getElementsByTagName("lnglat")[0].childNodes.length //IE 下返回1
//FF 下返回2,说明ff已将这个node拆分为2个.这样你应该就知道怎么处理了.
<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>
首先十分感谢你的帮忙,现在问题已经解决了。
感激之余,我还想请教一下你是从哪里查到Firefox下对xml节点长度的限制的?我也思考过可能是过关于节点长度的问题,但都没有找到关于这方面的明确规定。那ie下面是否也有类似的规定,只是我现在节点长度还没有达到它所规定的长度,所以才可能正确的取值?
to dh20156:
也要感谢你热心的帮忙,虽然没有使用你说的方法,呵呵。给分啦!
http://www.coderholic.com/firefox-4k-xml-node-limit/IE下貌似没有.