jQuery análisis RSS y elemento de espacio de nombres como
-
21-09-2019 - |
Pregunta
Estoy usando jQuery para analizar un canal RSS. Dentro de cada <item>
es un elemento de espacio de nombres como <content:encoded>
Quiero seleccionar. ¿Cómo se selecciona en jQuery?
$(xml).find('item') works but $(xml).find('item content') does not.
Solución
¿Está cargando el código XML a través de Ajax? A continuación, asegúrese de que el servidor establece el tipo de contenido como 'text / xml' y no 'text / html'.
También asegúrese de que el nombre de la etiqueta del elemento que desea es de hecho el contenido y no otra cosa (como contenido: codificado). En ese caso, intento:
.find('item content\\:encoded')?
Los caracteres especiales como:. Necesidad de un carácter de escape en los selectores de jQuery
Otros consejos
Me doy cuenta de este hilo es bastante antiguo, pero es la primera que aparece en Google en la búsqueda de esto con jQuery. La forma más sencilla de hacerlo es con la búsqueda:
.find('[nodeName="content:encoded"]')
Espero que ayude a alguien. Pasé las últimas horas tratando de averiguar una forma sencilla de acceder a esas etiquetas.
.find('[nodeName="content:encoded"]')
lo hace funciona bien en Chrome y algunos navegadores antiguos.
Esto es lo que obtuve de una búsqueda
selectores jQuery no son espacio de nombres-conscientes, por lo que sólo utilizan getElementsByTagName (en lugar de getElementsByTagNameNS) para recuperar elementos por su atributo nodeName (En lugar de por localName y namespaceURI).
Parece que hay que hacer en js regulares utilizando el document.getElementsByTagNameNS(namespace, tagname)