以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』 (http://bbs.xml.org.cn/list.asp?boardid=22) ---- [求助]javascript 解析 WebService返回的ds.getxml()遇到问题,在线等 (http://bbs.xml.org.cn/dispbbs.asp?boardid=22&rootid=&id=48498) |
-- 作者:yujiatan -- 发布时间:6/14/2007 11:10:00 AM -- [求助]javascript 解析 WebService返回的ds.getxml()遇到问题,在线等 我最近遇到一个问题,已经折腾了一天了,请高手帮帮忙。我在客户端调用WebService,返回一个ds.GetXML()的字符串,需要在客户端解析出来。现在遇到问题,不论是childNodes 还是selectNodes() 都无法遍历,返回的length均为0。请指教。 <js> var xmlRoot = xmlhttp.responseXML; var DataSetObj; if(xmlRoot.hasChildNodes()) DataSetObj = xmlRoot.childNodes; //newDataSet else alert("what"); if(DataSetObj != null) { for(var t = 0;t<DataSetObj.length;t++) { var oneTable = DataSetObj.item(t); //newDataSet alert("1" + oneTable.nodeName); //var DataTableObj = oneTable.selectNodes("Table1"); var DataTableObj; if(oneTable.hasChildNodes()) DataTableObj = oneTable.childNodes; //Table1 else alert("why"); alert(DataTableObj.length); if(DataTableObj != null) { for(var dt = 0;dt < DataTableObj.length;dt++) { var oneTable = DataTableObj.item(dt); if(oneTable.hasChildNodes()) //real field { var childField = oneTable.childNodes; for(var f = 0;f<childField.length;f++) { var fieldText = childField.childNodes.item(f).text; retstring += fieldText; } } } } } } <xml string> <?xml version="1.0" encoding="utf-8" ?> <string xmlns="http://tempuri.org/"> <NewDataSet> <Table1> <_x0030_>NO</_x0030_> <_x0031_>TIME</_x0031_> <_x0032_>LATITUDE</_x0032_> <_x0033_>LONGITUDE</_x0033_> <_x0034_>SWATH_COUNT</_x0034_> <_x0035_>WIND_SPEED</_x0035_> <_x0036_>ZONAL_WIND_SPEED</_x0036_> <_x0037_>MERIDIONAL_WIND_SPEED</_x0037_> <_x0038_>WIND_SPEED_DIVERGENCE</_x0038_> <_x0039_>WIND_STRESS</_x0039_> <_x0031_0>ZONAL_WIND_STRESS</_x0031_0> <_x0031_1>MERIDIONAL_WIND_STRESS</_x0031_1> <_x0031_2>WIND_STRESS_CURL</_x0031_2> </Table1> <Table1> <_x0030_>1</_x0030_> <_x0031_>19910801</_x0031_> <_x0032_>49.5</_x0032_> <_x0033_>141.5</_x0033_> <_x0034_>10</_x0034_> <_x0035_>401</_x0035_> <_x0036_>24</_x0036_> <_x0037_>157</_x0037_> <_x0038_>32767</_x0038_> <_x0039_>32</_x0039_> <_x0031_0>2</_x0031_0> <_x0031_1>16</_x0031_1> <_x0031_2>32767</_x0031_2> </Table1> </NewDataSet> </string> |
-- 作者:Qr -- 发布时间:6/14/2007 12:08:00 PM -- 将你的XML存盘后运行如下代码正常,说明代码没有问题,所以,你要检查xmlhttp.responseXML的结果,看是否返回XML文档。 xmlDoc = new ActiveXObject("Msxml2.DOMDocument") xmlDoc.async=false xmlDoc.load("test.xml") //alert(xmlDoc.xml) var xmlRoot = xmlDoc.documentElement; |
-- 作者:yujiatan -- 发布时间:6/14/2007 1:32:00 PM -- 回Qr: 服务器端WebService返回的是string类型, return ds.GetXML(); 是这个原因吗?如果是这里的话,该怎么改呢? |
-- 作者:yujiatan -- 发布时间:6/14/2007 2:57:00 PM -- 我解决了,谢谢Qr提醒。 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
78.125ms |