У меня есть XML, который выглядит так:
<?xml version = "1.0" encoding = "utf-8"?>
<export>
<Article URL = "test">
<DisplayName>test</DisplayName>
<Summary>test</Summary>
<ThumbNail ID = "test" URL = "test" />
</Article>
</export>
Который я хочу проанализировать с помощью jQuery. Это работает с использованием следующего кода:
$.ajax({
url: 'https://[fqdn]/[filename].xml'
})
.done(function(xml) {
$(xml).find('Article').each(function() {
console.info($(this).attr('URL'));
console.info($(this).find('DisplayName').text());
console.info($(this).find('Summary').text());
console.info($(this).find('ThumbNail').attr('URL'));
});
})
.fail(function(jqXHR, textStatus) {
console.info(textStatus);
})
Весь вывод записывается в консоль, но в конце я получаю сообщение об ошибке, что XML искажен в строке 1, столбец 78, что приводит к остановке всего моего скрипта.
Это правильный способ сделать это?
Добавление dataType: «xml» и / или типа: «GET» не помогает.
@ZeeshanAdil, потому что я не могу заставить это работать. Я пробовал несколько примеров. У вас есть один для меня, основанный на моем файле XML?
Вы пытались изучить значение переменной xml, полученное в результате успеха ajax? Похоже, что $.parseXML работает на основе предоставленного вами XML-контента.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Пожалуйста, попробуйте это:
получение вашего XML в JQuery:
var x = "<?xml version='1.0' encoding='utf-8'?><export> <Article URL='test'> <DisplayName>test</DisplayName> <Summary>test</Summary><ThumbNail ID='test' URL='test' /></Article></export>";
var xmlDoc = $.parseXML(x);
и записываем все, что вам нужно:
$(xmlDoc).find('Article').each(function() {
console.info($(this).attr('URL'));
console.info($(this).find('DisplayName').text());
console.info($(this).find('Summary').text());
console.info($(this).find('ThumbNail').attr('URL'));
});
дайте мне знать, если это сработает.
почему бы вам просто не попробовать
jQuery.parseXML()?