日期:2014-05-16  浏览次数:20322 次

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

------解决方案--------------------
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();
------解决方案--------------------
关于js解析xml的方法问题,我下午查了一下,也测试通过,你可以看看这里
JScript code
$.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做其它处理...
      }
});