Разбор xml с использованием jquery (искаженный xml)

У меня есть 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» не помогает.

почему бы вам просто не попробовать jQuery.parseXML()?

Zeeshan Adil 12.07.2018 12:39

@ZeeshanAdil, потому что я не могу заставить это работать. Я пробовал несколько примеров. У вас есть один для меня, основанный на моем файле XML?

vespino 12.07.2018 12:56

Вы пытались изучить значение переменной xml, полученное в результате успеха ajax? Похоже, что $.parseXML работает на основе предоставленного вами XML-контента.

mylee 12.07.2018 16:44
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
83
1

Ответы 1

Пожалуйста, попробуйте это:

получение вашего 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'));
    });

дайте мне знать, если это сработает.

Другие вопросы по теме