使用javascript搜索XML文件

使用javascript搜索XML文件,javascript,jquery,Javascript,Jquery,我正在尝试创建一个页面,用户可以在其中输入url到输入框中,单击submit,脚本将返回WebSite页面。(WebSite是一种url缓存服务。例如,如果我“归档”www.google.com,归档页面是www.webcitation.org/65YgIgei6。)因此WebSite有一种查询语法,当给定要缓存的url、电子邮件和参数&returnxml=true时,它将返回一个xml文件。(例如,导致一个xml文件,其中标记之间的文本是归档页面。) 因此,我想要一些Javscript(或jq

我正在尝试创建一个页面,用户可以在其中输入url到输入框中,单击submit,脚本将返回WebSite页面。(WebSite是一种url缓存服务。例如,如果我“归档”www.google.com,归档页面是www.webcitation.org/65YgIgei6。)因此WebSite有一种查询语法,当给定要缓存的url、电子邮件和参数
&returnxml=true
时,它将返回一个xml文件。(例如,导致一个xml文件,其中
标记之间的文本是归档页面。)

因此,我想要一些Javscript(或jquery),它将在xml文件中搜索“
”和“
”并返回这些标记中的url。这是基本的想法

顺便说一句,我读了stackoverflow.com/questions/6648454/search-and-output-data-from-an-xml-file-using-javascript,但我不知道如何根据我的情况调整那里的代码

(*由于垃圾邮件过滤器,从某些链接中删除了“http://”)


谢谢

这就是jQuery构建的目的


没有jQuery的解决方案:

  • 用iframe加载xml
  • 通过dom
  • var iframe=document.createElement(“iframe”); iframe.src=”http://www.webcitation.org/archive?url=http://www.google.com&email=testtt@test.com&returnxml=true”; document.body.appendChild(iframe); iframe.onload=函数(){ var url=this.contentDocument.getElementsByTagName(“WebSite_url”)[0].firstChild.nodeValue; //用这里的url做任何你想做的事 }
    但要注意:这只是一个通用指针。这里可能存在浏览器不兼容。

    jQuery是用来解析xml文件的。您的问题是如何解析来自另一个域的数据。这是你的答案。 您将
    ?callback=?“
    附加到请求的末尾,并为
    数据
    选项添加
    jsonp

    $.ajax({
      url: "http://www.webcitation.org/archive?url=http://www.google.com&email=testtt@test.com&returnxml=true?callback=?",
      dataType:'jsonp',
      success: function (XMLstring) {
        $(XMLstring).find('webcite_url').text();
      }
    });
    

    哇,太棒了!但有一件事:你复制了xml文件的文本,并将其设置为变量。我的问题是:如何让代码自动执行此操作?换句话说,我如何让代码访问并将变量设置为该文件的内容?哦,因为我查询的是另一个域(website.org),所以我不能使用jquery.get()问题中显示的ajax方法是“如何解析xml”,而不是“如何执行跨域ajax”。由于该服务不提供JSON,简单的答案是“您不能”“。很长的答案是,您必须在服务器上设置一个代理来执行请求。看:好吧,很抱歉。中提供了一种方法,允许在不创建代理的情况下执行跨域ajax(也许我应该早一点提到)。看见该脚本在html文档中搜索
    标记的内容。可以对XML文件使用相同的方法吗?我试过了,但没有成功。好的,我试过了,但出现了一个错误(“错误:获取属性XMLDocument.getElementsByTagName的权限被拒绝”)。请看。这是同源策略,您无法从其他域访问内容。因此,请使用一个在服务器上重定向请求的代理,或者尝试类似于“嘿,这看起来更接近我要查找的内容”。然而,我尝试了这个,并得到了一个错误:
    unterminated regular expression literal…
    。我认为这可能是一个与“解析XML”不同的问题,因此我建议您为它提出一个新问题:好的,谢谢,我会的!我认为你让我走上了正确的道路。很高兴,你也可以勾选我的答案,让人们有类似的问题,以便更容易地找到解决方案。快乐编码!新问题@steven-我已经勾选了你的答案。你能告诉我它是否有效吗?(我是新来的)您需要一个服务器端代理。 var iframe = document.createElement("iframe"); iframe.src = "http://www.webcitation.org/archive?url=http://www.google.com&email=testtt@test.com&returnxml=true"; document.body.appendChild(iframe); iframe.onload = function() { var url = this.contentDocument.getElementsByTagName("webcite_url")[0].firstChild.nodeValue; // do whatever you want with the url over here }
    $.ajax({
      url: "http://www.webcitation.org/archive?url=http://www.google.com&email=testtt@test.com&returnxml=true?callback=?",
      dataType:'jsonp',
      success: function (XMLstring) {
        $(XMLstring).find('webcite_url').text();
      }
    });