Javascript, обрабатывающий файл XML - PullRequest
1 голос
/ 15 сентября 2009

Может ли Javascript напрямую обрабатывать XML-файл, запрашиваемый через AJAX. У меня есть файл XML на стороне сервера, и мне нужно заполнить поля из этого XML. Могу ли я сказать «непосредственно прочитать« xmlfile.xml »(на сервере)», а затем извлечь значения в javascript из полученного ответа и заполнить, как требуется? Можете ли вы объяснить с примером, если это возможно?

Ответы [ 3 ]

3 голосов
/ 15 сентября 2009

Если вы можете использовать jQuery, вы можете просто выполнить XML AJAX-вызов и ответить статическим файлом.

 <script type="application/javascript">
 $(function() {
     $('#get-xml a').click(function() {
         $.ajax({
             type: "GET",
             url: "xmlfile.xml",
             dataType: "xml",
             success: function(xml) {
                 $(xml).find('label').each(function(){
                     // your code. some example code bellow
                     var id_text = $(this).attr('id')
                     var name_text = $(this).find('name').text()

                     $('<li></li>')
                         .html(name_text + ' (' + id_text + ')')
                         .appendTo('#get-xml ol');
                 });
             }
         });
     });
 });
 </script>

Просто будь осторожен:

Примечание: Если вы укажете опцию dataType, описанную ниже, убедитесь, что сервер отправляет в ответ правильный тип MIME (например, xml как «text / xml»). Отправка неправильного MIME-типа может привести к неожиданным проблемам в вашем скрипте.

2 голосов
/ 15 сентября 2009

Да. XMLHttpRequest имеет свойство responseXML (заполняется, как только запрос будет выполнен обычным способом), которое является ссылкой на документ XML. Здесь есть все обычные методы и свойства DOM, которые вы получите в HTML-документе. Вам не нужно 50 000 jQuery для этого.

1 голос
/ 15 сентября 2009

Как стандарт здесь на SO, я рекомендую использовать jQuery!

var myUrl = 'http://somesite.com/foo.xml';

function myXmlHandler(data){
    // do stuff with data, which is the contents of foo.xml
}

$.get(myUrl,{},myXmlHandler);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...