jQuery разбирает RSS и элемент пространства имен, например

Я использую jQuery для разбора RSS-канала. Внутри каждого <item>есть элемент пространства имен, который <content:encoded>я хочу выбрать. Как мне выбрать его в JQuery?

$(xml).find('item') works but $(xml).find('item content') does not.
13.10.2009 11:34:49
Не могли бы вы опубликовать пример кода rss и сообщить нам, какие элементы вы пытаетесь выбрать?
jantimon 13.10.2009 11:40:47
user3067992 4.12.2013 23:14:13
4 ОТВЕТА
РЕШЕНИЕ

Вы загружаете XML через Ajax? Затем убедитесь, что сервер устанавливает тип содержимого как «text / xml», а не «text / html».

Также убедитесь, что имя тега нужного элемента действительно является содержимым, а не чем-то другим (например, content: encoded). В этом случае попробуйте:

.find('item content\\:encoded')?

Специальные символы, такие как: необходимо экранировать в селекторах jQuery.

7
13.10.2009 12:16:09
Первое, что я проверил. Это feed.xml, поэтому читаем его как файл XML. Проблема заключается в том, что имя тега является содержимым: закодировано.
Corey 13.10.2009 11:59:22
Попробуйте избежать: тогда.
kgiannakakis 13.10.2009 12:17:02

Это то, что я получил от поиска

Селекторы jQuery не учитывают пространство имен, поэтому они используют только getElementsByTagName (а не getElementsByTagNameNS) для извлечения элементов по их атрибуту nodeName (а не по localName и namespaceURI).

Похоже, вам нужно сделать это в обычном JS с помощью document.getElementsByTagNameNS(namespace, tagname)

0
13.10.2009 12:17:16

Я понимаю, что эта ветка довольно старая, но она первая, которая появляется в google при поиске в jquery. Самый простой способ сделать это с помощью:

.find('[nodeName="content:encoded"]')

Надеюсь, что это помогает кому-то. Я провел последние несколько часов, пытаясь найти простой способ доступа к этим тегам.

4
11.10.2011 19:07:23
Это было какое-то время, но это отлично сработало. Спасибо!
Jimmy 4.05.2016 02:48:29

.find('[nodeName="content:encoded"]') он отлично работает в Chrome и некоторых старых браузерах.

2
28.06.2012 16:04:57