开发者

jQuery parsing RSS and namespaced element like <content:encoded>

I am using jQuery to parse an RSS feed. Within each <item> is a namespaced element like <content:encoded> I w开发者_StackOverflowant to select. How do I select it in jQuery?

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


Are you loading the xml via Ajax? Then, make sure that the server sets the content type as 'text/xml' and not 'text/html'.

Also make sure that the tag name of the element you want is indeed content and not something else (like content:encoded). In that case try:

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

Special characters like : need to be escaped in jQuery selectors.


I realize this thread is fairly old but it is the first one that comes up in google when searching for this with jquery. The easiest way to do the search is with:

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

Hope that helps someone. I spent the last few hours trying to figure out a simple way to access those tags.


.find('[nodeName="content:encoded"]') it does works fine in Chrome and some older browsers.


This is what I got from a search

jQuery selectors are not namespace-aware, so they only use getElementsByTagName (rather than getElementsByTagNameNS) to retrieve elements by their nodeName attribute (rather than by localName and namespaceURI).

Looks like you need to do it in regular js by using the document.getElementsByTagNameNS(namespace, tagname)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜