jQuery анализирует RSS и элемент в пространстве имен, например <content:encoded>
-
21-09-2019 - |
Вопрос
Я использую jQuery для анализа RSS-канала.Внутри каждого <item>
это элемент в пространстве имен, например <content:encoded>
Я хочу выбрать.Как выбрать его в jQuery?
$(xml).find('item') works but $(xml).find('item content') does not.
Решение
Вы загружаете XML через Ajax?Затем убедитесь, что сервер устанавливает тип контента как «текст/xml», а не «текст/html».
Также убедитесь, что имя тега нужного элемента действительно является содержимым, а не чем-то другим (например, content:encoded).В этом случае попробуйте:
.find('item content\\:encoded')?
Специальные символы, такие как:необходимо экранировать в селекторах jQuery.
Другие советы
Я понимаю, что эта тема довольно старая, но это первая тема, которая появляется в Google при поиске с помощью jquery.Самый простой способ выполнить поиск:
.find('[nodeName="content:encoded"]')
Надеюсь, это кому-то поможет.Я провел последние несколько часов, пытаясь найти простой способ доступа к этим тегам.
.find('[nodeName="content:encoded"]')
он отлично работает в Chrome и некоторых старых браузерах.
Вот что я нашел в результате поиска
jQuery Selectors не являются имен-пространством, поэтому они используют getelementsbytagname (а не getelementsbytagnamens) для извлечения элементов только по атрибуту NodeName (а не LocalName и именам пространства).
Похоже, вам нужно сделать это в обычном js, используя document.getElementsByTagNameNS(namespace, tagname)