Как мне AJAX в XML-файле и проанализировать значения? - PullRequest
0 голосов
/ 11 апреля 2011

У меня есть следующий код AJAX и XML. Вы можете увидеть значения, которые я пытаюсь установить. Я просто не знаю, как выполнить синтаксический анализ файла XML для установки этих переменных.

Код AJAX:

$.ajax({
          url: 'PATH TO XML',
          dataType: ($.browser.msie) ? "text" : "xml",
          success: function(data) {
                        var context = default;
                        if ( ... ) {
                           context = not-default;
                        }
                    }

XML-код:

<messages>
 <message id="id1" context="default">
      <content>

            <p>Default HTML</p>


      </content>
 </message>
 <message id="id2" context="not-default">
      <content>

        <p>Not Default HTML</p>

      </content>
</message>
</messages>

Ответы [ 3 ]

1 голос
/ 11 апреля 2011

Все довольно просто:

$(yourXmlFileContents);

Отсюда, просто используйте метод .find() для выбора элементов:

$(yourXmlFileContents).find('foo[context=bar]');

ПРИМЕЧАНИЕ: Если вы предоставите содержимое документа в виде строки jQuery будет интерпретировать его не как XML, а как HTML.

0 голосов
/ 11 апреля 2011

Если вы установите dataType как «xml», значение, предоставленное вашей функции success, будет объектом документа XML, и передача его в основную функцию jQuery будет делать то, что вы хотите.Если вместо этого у вас есть XML в виде строки, вам нужно передать ему метод jQuery parseXML() (новое в версии 1.5):

var xmlStr = "<foo>bar</foo>";
var xmlDoc = $.parseXML(xmlStr);
$xml = $(xmlDoc);
alert($xml.find("foo").text()); // Alerts "bar"
0 голосов
/ 11 апреля 2011

См. Этот пример :

$(document).ready(function () {
    $.ajax({
        type: "GET",
        dataType: "xml",
        url: "XMLFile.xml",
        success: function (xml) {
            $(xml).find('type').each(function () { // find all "type" tag in XML
                if ($(this).text() == 'administrative_area_level_3') { // in here $(this) is our "type" tag
                    var result = $(this).parent().find('long_name').text(); // get result
                    $('#result').html('The Result is: ' + result) // write result
                }
            })
        }
    })
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...