以文本方式查看主题

-  中文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;
//以下代码完全用LZ的代码
var DataSetObj;
...


--  作者: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