Поиск XML-файла с использованием JavaScript - PullRequest
0 голосов
/ 19 февраля 2012

Я пытаюсь создать страницу, на которой пользователь может ввести URL-адрес в поле ввода, нажать «Отправить», и скрипт вернет страницу веб-сайта. (WebCite - это служба кэширования URL. Например, если я «архивирую» www.google.com, страница архива будет www.webcitation.org/65YgIgei6.) Таким образом, у WebCite есть синтаксис запроса, который при передаче URL в кеш - email, а параметр &returnxml=true вернет XML-файл. (Например, http://www.webcitation.org/archive?url=http://www.google.com&email=testtt@test.com&returnxml=true приводит к XML-файлу, где текст между тегами <webcite_url> является страницей архива.)

Так что я хотел бы получить Javscript (или jquery), который будет искать в файле XML «<webcite_url>» и «</webcite_url>» и возвращать URL-адрес в этих тегах. http://jsfiddle.net/gxHWk/ является основной идеей.

Кстати, я прочитал stackoverflow.com/questions/6648454/search-and-output-data-from-an-xml-file-using-javascript, но я не могу понять, как адаптировать код там к моему обстоятельства.

(* удалено "http://" из некоторых ссылок из-за спам-фильтра)

Спасибо!

Ответы [ 3 ]

0 голосов
/ 19 февраля 2012

решение без jQuery:

  1. загрузить XML с iframe
  2. пройти через
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
}

Но имейте в виду: это простообщий указатель.Здесь могут быть несовместимости браузера.

0 голосов
/ 19 февраля 2012

jQuery построен для анализа XML-файлов. Проблема для вас в том, как анализировать данные из другого домена. JSONP - это ответ для вас. Вы добавляете ?callback=?" в конец вашего запроса и ставите jsonp для ваших data вариантов.

$.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();
  }
});
0 голосов
/ 19 февраля 2012

Это то, для чего создан jQuery! jsFiddle

$(XMLstring).find('webcite_url').text();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...