Как вернуть оба значения из XML-файла после его поиска на основе пользовательского ввода? - PullRequest
1 голос
/ 12 июля 2011

У меня есть XML-файл, который структурирован следующим образом:

<row>
  <store>place1</store>
  <location>location1</location>
</row>
<row>
  <store>place2</store>
  <location>location2</location>
</row>
<row>
  <store>place3</store>
  <location>location3</location>
</row>

Эти строки доходят до 5000. Теперь у меня есть функция JavaScript, которая просматривает файл и основывается на том, что пользовательТипы возвращает значение из файла XML.На данный момент он только просматривает поле магазина и возвращает значение / серию значений.Как я могу заставить его искать и затем отображать оба?Так, например, если бы я искал «location3», он вернул бы и магазин (в приведенном выше примере это «place3»), а также вернул бы местоположение (то есть «location3»)?

Пока у меня есть 2 unГотовые решения:

1) Мне удалось сделать это в JQuery примерно так:

$(document).ready(function(){
        $.ajax({
            type: "GET",
            url: "index.xml",
            dataType: "xml",
            success: function(xml) {
                $(xml).find('Row').each(function(){
                    var store = $(this).find('store').text();
                    var location = $(this).find('location').text();
                    $('<div class="items"></div>').html('<p class="items">Store: '+store+'</p><p class="items">Location: '+location+'</p>').appendTo('#page-wrap');
                    });
            }
        });
    });

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

2) Я также сделал это в JavaScript, который я вставил здесь .В этом примере я могу вернуть результат, но он ищет только «хранилище»!

В качестве ОСНОВНОГО препятствия мне нужно поддерживать IE6: /

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 12 июля 2011

это может быть глупо, но в любом случае. Это делает трюк

function getItemByStore(store) {
   var matches = data.match(new RegExp("<store>(" + store + "){1}</store>(?:[\r\n\t ]+)<location>(.*)</location>", "m"));
   if (matches) {
      return [/*Store*/matches[1], /*Location*/matches[2]];
   }
   return false;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...