Javascript: сделать запрос GET и разобрать ответ - PullRequest
0 голосов
/ 31 января 2012

Я пишу виджет MacOs, который должен объяснить информацию о прибытии автобуса, получить информацию с веб-сайта следующим образом:

http://www.5t.torino.it/5t/it/trasporto/arrivi-fermata.jsp

Я должен сделать запрос Get и проанализироватьответ .. я пытаюсь с:

var xmlHttp = null;
var theUrl = "http://m.gtt.to.it/m/it/arrivi.jsp?n=876";
xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET",theUrl,false);
xmlHttp.send( null );
xmlDoc=xmlHttp.responseXML;

но я не знаю структуру документа, как я могу сделать это для навигации?

Ответы [ 2 ]

0 голосов
/ 31 января 2012

но я не знаю структуру документа, как я могу сделать это для навигации?

Вы либо гуляете по дереву и копаетесь в типе примечания и имени узла в нем, либо вручную изучаете документ XML, чтобы узнать структуру.

0 голосов
/ 31 января 2012

Лучше сделать Ajax-вызов асинхронным imo, выполнив:

xmlhttp.open("GET", theUrl, true);

Это предотвратит вмешательство раздражающих «заблокированных» периодов на вашем сайте.

Если вы сделаете это, вам нужно добавить обработчик onreadystatechange, чтобы вы могли анализировать входящие данные там и отображать данные, которые вы хотите отобразить.

xmlhttp.onreadystatechange = function() {
   if (xmlhttp.readyState==4 && xmlhttp.status == 200) {
      var content = xmlhttp.responseText;
      //Parse your content here...
   }
} 

Очевидно, что вы должны знать, какие данные вы извлекаете, чтобы иметь возможность их анализировать. Но для этого вы можете просто проанализировать responseText и найти элементы, которые всегда содержат ваши данные. Затем просто извлеките значения из этих тегов <html> и отобразите их соответствующим образом.

Например, если вы хотите получить данные в <label> с идентификатором, установленным в время прибытия do:

content.getElementById('arrival-time').innerHTML;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...