jQuery.get():尝试检索feed,但XML标记丢失了

时间:2011-05-15 21:33:57

标签: jquery html xml rss get

我正在使用jQuery自动获取博客上最新的帖子。 jQuery.get()转到博客的RSS源并返回最新的帖子:
这是我正在使用的:

$.get('http://url.to/feed', function(feed) {data = $(feed).find('item:first').text(); $('#testbox').html(data);}, 'xml');

问题在于:它只是从feed和HTML元素中吐出文本。像<title>Title</title这样的所有内容都被剥离到Title。我需要保持所有这些XML元素的完整性,以便我可以正确地设置样式。

我也尝试过.html()而不是.text(),但这不起作用。使用任何一个也不起作用(即data = $(feed).find('item:first');)。

如何下载和显示RSS源的一部分而不删除XML标记?
谢谢!

4 个答案:

答案 0 :(得分:2)

嗯......看一下你的内容是否只能用<![CDATA[包裹并复制。 请参阅this answer(我知道,CDATA滥用和所有内容,但OP根本不想解析XML,只需将其直接附加到DOM)。

更新:实际工作的内容

将您的调用更改为get方法,以便将响应解释为纯文本,并让JQuery为您创建DOM树。看看here

答案 1 :(得分:2)

如果你附加它,它就可以了。

$(feed).find('item:first > *').appendTo('#testbox');

答案 2 :(得分:1)

尝试返回节点,而不是文本...

$.get('http://url.to/feed', function(feed) {
    data = $(feed).find('item:first'); 
    $('#testbox').html(data);
}, 'xml');

答案 3 :(得分:0)

尝试这样的事情怎么样(这对我有用)......

使用以下内容创建一个PHP文件(get_xml.php):

$xml = file_get_contents($_GET['url']);
header("Content-Type: text/xml");          
echo $xml;

然后使用以下jQuery:

$.get("get_xml.php",{url:'http://url.to/feed/'}, function(data){
    var data = $(data).find('item:first');
    $('#testbox').html(data);
});
相关问题