从ajax请求中提取内容

时间:2014-02-01 21:05:53

标签: php jquery ajax

我正在尝试从ajax请求中提取内容。我能够提取一些信息,但我遇到了其他人的问题。

以下是一些所需信息的示例:

<item>
<title>Title</title>
<pubDate>Sat, 01 Feb 2014 12:12:12 GMT</pubDate>
<description>Description</description>
<enclosure url="http://www.podtrac.com/pts/redirect.mp3/traffic.libsyn.com/example.mp3" type="audio/mpeg" />
<itunes:duration>1:35:25</itunes:duration>
</item>

所需的输出:

Title
Sat, 01 Feb 2014 12:12:12 GMT
Description
1:35:25
http://www.podtrac.com/pts/redirect.mp3/traffic.libsyn.com/example.mp3

到目前为止,我已经能够提取标题,pubDate和描述。我的网址和持续时间都没有成功。我尝试了不同的方法,但一直没有成功。我希望你能帮助我找到解决方案并感谢你的时间。

以下是我的代码:

$.ajax({
type: "GET",
url: "php/podcast.php",
dataType: "xml",
success: function(xml){
$(xml).find('item').each(function(){
var sTitle = $(this).find('title').text();
var sPubDate = $(this).children('pubDate').text();
var sDescription = $(this).find('description').text();
var sDuration = $(this).find('itunes:duration').text();
var sURL = $(this).text().match('podtrac');
$('#rtpodcast').append('<div id="podcast"><div id="podTitle">'+ sTitle +'</div><div        id="podPubDate">'+ sPubDate +'</div><div id="podDescription">'+ sDescription +'</div><div  id="podDuration">'+ sDuration +'</div><div id="podURL">'+ sURL +'</div></div>');
});
},
error: function() {
alert("An error occurred while processing XML file.");
}
});

1 个答案:

答案 0 :(得分:2)

这将匹配标签之间的文本而不是属性。

例(Fiddle):

var xml = $.parseXML('<a id="text_id">text</a>');
alert($(xml).find('a').text()); // this will alert "text"
alert($(xml).find('a').attr("id")); //this will alert "text_id"

要检索网址,您需要替换此

var sURL = $(this).text().match('podtrac');

var sURL = $(this).find("enclosure").attr("url");

对于带有命名空间的标记,请尝试在选择器中使用//转义冒号