RSS parsing jQuery et élément comme un espace de nommage
-
21-09-2019 - |
Question
J'utilise jQuery pour analyser un flux RSS. Au sein de chaque <item>
est un élément comme <content:encoded>
des espaces de noms, je veux choisir. Comment puis-je sélectionner dans jQuery?
$(xml).find('item') works but $(xml).find('item content') does not.
La solution
Êtes-vous le chargement du xml via Ajax? Ensuite, assurez-vous que le serveur définit le type de contenu comme 'text / xml' et non 'text / html'.
De plus, assurez-vous que le nom de la balise de l'élément que vous voulez est en effet le contenu et pas autre chose (comme le contenu: codé). Dans ce cas, essayez:
.find('item content\\:encoded')?
caractères spéciaux tels que:. Doivent être protégés dans les sélecteurs jQuery
Autres conseils
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"]')
L'espoir qui aide quelqu'un. J'ai passé les dernières heures à essayer de trouver un moyen simple d'accéder à ces balises.
.find('[nodeName="content:encoded"]')
il ne fonctionne très bien dans Chrome et certains navigateurs plus anciens.
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 avez besoin de le faire en js régulièrement en utilisant le document.getElementsByTagNameNS(namespace, tagname)