How to parse XML in JavaScript from Google

点点圈 提交于 2019-11-28 10:38:34

Unless you are working on a page hosted on google.de — you can't.

The same origin policy prevents JS running in a webpage on your site from accessing a document on a remote site.

You have to involve a server side process in order to either convert the XML into a format that you can handle remotely (such as JSON-P, which Yahoo! Pipes will do for you) or relay the data through your own server with a server side process accessible in the same origin as the page.

There is a good tutorial at Ajaxian on how to parse XML with jQuery http://ajaxian.com/archives/ajaxian-featured-tutorial-parsing-xml-with-jquery hope it helps

edit: the tutorial actually is here: http://blog.reindel.com/2007/09/24/jquery-and-xml-revisited/

I've had some luck parsing XML in javascript with code like:

var xmlDoc = this.req.responseXML.documentElement;
var tStatus = xmlDoc.getElementsByTagName("status")[0].firstChild.data;
var tOtherURL = xmlDoc.getElementsByTagName("otherurl")[0].firstChild.data;
var tRows = xmlDoc.getElementsByTagName("rows")[0].firstChild.data;

Keep in mind that I don't really know Javascript and I cargo-cult'ed this from somewhere else.

mkoeller

In Firefox and Opera the solution is very easy: They have builtin XPath support. So you just evaluate an XPath expression on the DOM of the XML response.

With IE there's more work to do. Someone else asked basically the same question before and the reasonable answer is: You'll need to employ JavaScript library that will allow you to use XPath. Otherwise you end up writing your problem-specific parsing code yourself.

I created a jQuery plugin that parses XML pretty easily. It works in all Yahoo A grade browsers and comes with filtering, limit and callback options.

It might be a solution to consider: http://jparse.kylerush.net/

I think I found a tutorial (its in german though) http://www.aboutwebdesign.de/awd/content/1124893836.shtml

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!