Разбор jQuery XML, как получить атрибут элемента
XML:
<item>
<title>Some title</title>
<description>
<![CDATA[
Some description text Some description text Some description text Some description text Some description text Some description text
Some description text Some description text Some description text Some description text Some description text Some description text
Some description text Some description text Some description text Some description text Some description text Some description text
Some description text Some description text Some description text Some description text Some description text Some description text
]]>
</description>
<media:content isDefault="true" medium="image" url="http://sampledomain.com/image.jpg">
<media:title>Image title</media:title>
<media:description>Image description</media:description>
<media:thumbnail url="http://sampledomain.com/image.jpg" width="160" height="120" />
</media:content>
<wfw:commentRss>http://sampledomain.com/comment/feed/</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
Я получаю css из ajax и в функции onsuccess мой код выглядит следующим образом:
$(xml).find('item').each(function() {
var title = $(this).find('title').eq(0).text();
var url = $(this).find('content').attr('url');
// Printing url as undefined
alert(url);
console.log($(this).find('content');
});
Что я хочу получить атрибут URL контента Я получаю дочерние элементы (заголовок, описание, контент, commentRss и комментарии), но когда я пытаюсь получить $(this).find('content'), он ничего не дает мне Может кто-нибудь понять это что я делаю не так? Спасибо
2 ответа
Ваш XML использует пространство имен.
Смотрите этот похожий вопрос переполнения стека в отношении пространств имен. Вы должны избежать толстой кишки:
Синтаксический анализ jQuery XML с использованием пространств имен.
Получил исправление для вас.. и ваше пространство имен РЕШЕНИЕ! Вам нужно экранировать пространство имен ":" правильно с \. Ниже приведен пример, который работает с XML-каналами подкаста Itunes.
item.description = jQuery(this).find("[nodeName=itunes\\:summary]").eq(0).text();