2009-10-13 3 views
2

J'utilise jQuery pour analyser un flux RSS. Dans chaque <item> est un élément namespaced comme <content:encoded> Je veux sélectionner. Comment puis-je le sélectionner dans jQuery?jQuery analyse l'élément RSS et l'élément namespaced comme <content: encoded>

$(xml).find('item') works but $(xml).find('item content') does not. 
+0

Pourriez-vous publier un exemple de code rss et nous indiquer quels articles vous voulez sélectionner? – jantimon

+0

http://stackoverflow.com/questions/9451202/trying-to-get-contentencoded-with-jfeed – user3067992

Répondre

5

Est-ce que vous chargez le XML via Ajax? Ensuite, assurez-vous que le serveur définit le type de contenu en tant que "text/xml" et non "text/html".

Assurez-vous également que le nom de tag de l'élément que vous voulez est en effet content et non quelque chose d'autre (comme content: encoded). Dans ce cas, essayez:

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

Des caractères spéciaux comme: doivent être échappés dans les sélecteurs jQuery.

+0

Première chose que j'ai vérifiée. C'est feed.xml, donc en le lisant comme un fichier XML. Le problème est que le nom du tag est content: encoded. – Corey

+0

Essayez d'échapper à: alors. – kgiannakakis

+4

.find ('codé') a fonctionné pour moi ... –

0

C'est ce que je suis d'une recherche

sélecteurs de jQuery ne sont pas espace de nom, de sorte qu'ils utilisent seulement getElementsByTagName (plutôt que getElementsByTagNameNS) pour récupérer éléments par leur attribut nodeName (plutôt que par localName et namespaceURI).

On dirait que vous devez le faire en js régulièrement en utilisant le document.getElementsByTagNameNS(namespace, tagname)

3

Je sais que ce fil est assez vieux, mais il est le premier qui vient dans Google lors de la recherche pour cela avec jquery. La meilleure façon de faire la recherche est avec:

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

espoir qui aide quelqu'un. J'ai passé les dernières heures à essayer de trouver un moyen simple d'accéder à ces balises.

+0

Cela fait un moment mais cela a fonctionné très bien. Merci! – Jimmy

2

.find('[nodeName="content:encoded"]') cela fonctionne très bien dans Chrome et certains navigateurs plus anciens.

0
.find('item encoded') 

fonctionnera avec la partie 'contenu' (espace de nommage).