我想利用jquery获取远程xml数据,这个:http://www.google.com/ig/api?hl=zh-cn&weather=Beijing,然后将数据过滤出自己想要的。
使用了$.ajax、$.get、$.post等方法,都实现不了。
请问有什么方法可以获取该数据啊?

解决方案 »

  1.   

    应该是Http请求被监控了,想想办法
      

  2.   

    http://www.itwis.com/html/programme/javascript/20091029/6735.html
    这个地址提供的是windows中执行的吧,不能跨平台的吧。
    我是这样用的。
    我是用servlet来实现的。是这样的。
    String urls = request.getParameter("url");
    URL url =  new URL(urls);

    URLConnection con = url.openConnection();
    con.connect();
    java.io.InputStream is = con.getInputStream();
    java.io.InputStreamReader isr = new java.io.InputStreamReader(is,"utf-8");

    java.io.BufferedReader br = new java.io.BufferedReader(isr);
    String str = null;//读取每一行的字符串
    StringBuffer weatherStr = new StringBuffer("");//天气预报部分的字符串
    int begin = 0;//开始截取的字符串的行数
    int line = 0;//读取字符串的行数
    int divcount = 0;//div匹配的对数
    while((str = br.readLine()) != null){
    if(str.indexOf("<div class=\"weatherYubao\"  id=\"7d\">")> -1){//截取字符串开始,记录位置
    weatherStr.append(str);
    begin = line;
    divcount = 1;//div匹配的对数开始
    }else{
    if(begin > 0){//截取字符串已经开始
    weatherStr.append(str);
    if(str.indexOf("<div") > -1){//有新的div层开始
    divcount ++;
    }
    if(str.indexOf("</div>")>-1){//有div层结束
    divcount--;
    }
    if(divcount == 0){//div匹配的对数完成
    break;
    }
    }
    }

    line ++;
    }
    br.close();
      

  3.   

    直接打开是可以看到xml的
    代码不可以
    我想可以试一下修改HTTP请求的头来绕过限制
      

  4.   

    请问平时是怎样调用xml接口的啊?例如这个:http://home.cnblogs.com/group/topic/5053.html(这个是json)
      

  5.   

    你试试下面这个代码,如果可行,你就知道怎么弄了
    $.ajax({ 
          url:'http://www.google.com/ig/api?hl=zh-cn&weather=Beijing',
          type: 'POST', 
          dataType: 'xml',
          success:function(xml){
           var root = $('weather',xml);
           alert(root[0].innerHTML);
          }
    });
      

  6.   

    关于js解析xml的方法问题,我下午查了一下,也测试通过,你可以看看这里
    $.ajax({ 
          url:'http://www.google.com/ig/api?hl=zh-cn&weather=Beijing',
          type: 'POST', 
          dataType: 'xml',
          success:function(xml){
           var xmldoc=loadXML(xml);//loadXML方法,上面链接有介绍
           var root=$('weather',xmldoc);
           alert(root[0].childNodes.length);
           //遍历root[0].childNodes做其它处理...
          }
    });
      

  7.   

    如果你的浏览器不支持LoadXML的相关实现,还有一个终极解决办法:自己写js用正则表达式来解析