我收到的网站Feed看起来像这样
<rss...>
<title> some title </title>
<content>
<![CDATA[ <div>this tag is ignored<div> who took the cookie in the cookie jar!? ]]>
</content>
</rss>
我需要在html中显示cdata的全部内容 . 我正在使用jquery 1.9.1,当我使用 $(xml).find('rss content').text()
获取内容部分时,它实际上忽略了整个 <div>this tag is ignored<div>
部分 . 有没有办法使用javascript或jquery获取CDATA内的所有内容?
4 回答
有可能你的标记没有被jQuery解析为XML . 尝试显式调用$.parseXML():
底线:
来自工作代码的这段代码使用jquery加载xml,然后获取内容标记的第4次出现(包含CDATA)
jQuery不是从字符串解析XML文档的最佳选择 . 最好使用浏览器的原生DOM Parser . 然后jQuery可以更好地处理解析的XML文档;否则我相信它会尝试像XML那样产生奇怪的结果 .
http://jsfiddle.net/ExplosionPIlls/2MJt9/
编辑:根据其他答案,
$.parseXML
可能是一个更好的选择,因为它应该与其他浏览器一起使用,但你必须以与上述类似的方式使用它,因为结果是XML文档而不是jQuery对象 .可以通过获取childNodes数据的第一个来检索jQuery中CDATA的文本:
其中dataR是从YOUR_URL读取的,而txt包含来自CDATA的信息