возникли проблемы с синтаксическим анализом данных XML с помощью JavaScript и прототипа 1.7 - PullRequest
0 голосов
/ 17 февраля 2011

У меня есть базовый вопрос, касающийся AJAX, XML и прототипа.

Я пытаюсь проанализировать этот документ XML:

<?xml version="1.0" encoding="utf-8"?>
  <NavigationData>
    <OrderOfCategories>
      <CategoryName Num="1">location</CategoryName>
      <CategoryName Num="2">real_estate</CategoryName>
      <CategoryName Num="3">services</CategoryName>
      <CategoryName Num="4">learning</CategoryName>
      <CategoryName Num="5">automobile</CategoryName>
      <CategoryName Num="6">personals</CategoryName>
      <CategoryName Num="7">community</CategoryName>
      <CategoryName Num="8">for_sale</CategoryName>
      <CategoryName Num="9">classifides</CategoryName>
    </OrderOfCategories>
  </NavigationData>

, используя этот код JavaScript (для примера):

function createNav (response)   {

  var xmlData = response.responseXML.documentElement.getElementsByTagName("CategoryName")[1].childNode[0].nodeValue;

  window.alert(xmlData);

 }
 // end of FUNCTION createNav

 function loadNav ()    {

     new Ajax.Request("http://www.listedcities.com/listings/geo_templates/freshstart/external/xml/global_data.xml",
              {
                method: 'get',
                                contentType: 'text/xml', 
                onSuccess: createNav,
                onFailure: function () { window.alert("failed") }
              });
 }

Функция loadNav загружает файл XML и передает его другой функции для анализа.Причина этого заключается в том, что приложение загружает несколько XML-файлов, а не один большой файл, а имена файлов меньших XML-файлов хранятся в XML-файле «global_data.xml».

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

Я надеюсь получить предупреждение с помощью значения 1-го узла в «global_data.xml».' файл.

Любая помощь будет высоко цениться в этих местах.

Берегите себя.

1 Ответ

0 голосов
/ 17 февраля 2011

Мне удалось решить эту проблему, чтобы получить работающую строку кода:

var xmlData = response.responseXML.documentElement.getElementsByTagName("CategoryName")[1].childNodes[0].nodeValue;

Мне нужны были дополнительные

childNodes[x] 

ссылка там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...