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.
¿Fue útil?

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)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top