jQuery解析XML查找特定元素
问题描述:
我正在制作一个“电视指南”,它从XML文件获取数据。这是我到目前为止有:jQuery解析XML查找特定元素
$(document).ready(function(){
$.ajax({
type: "GET",
url: "programmes.xml",
dataType: "xml",
error: function (xhr, status, error) {
console.log(status, error);
},
success: function(xml) {
var programmeOne = $(xml).find('programme').first();
$(xml).find('[programme[id="ch1pg1"]').text();
$('.p1').text(programmeOne.find('title').text());
}
});
而这里的XML:
<channel id="bbc1" source="Sky" date="20/12/2014">
<programme id="ch1pg1">
<desc>The latest news, sport, business and weather from the BBC's Breakfast team.</desc>
<title>Breakfast</title>
<start>0900</start>
<end>1100</end>
</programme>
<programme id="ch1pg2">
<desc>James Martin presents the weekly cooking show. [HD] [S]</desc>
<title> Kitchen</title>
<start>1100</start>
<end>1200</end>
</programme>
<programme id="ch1pg3">
<desc>descriptions [HD] [S]</desc>
<title>second Kitchen</title>
<start>1200</start>
<end>1300</end>
</programme>
当我删除
$(xml).find('[programme[id="ch1pg1"]').text();
代码工作,但每个通道的所有程序1的使用相同的来自ch1pg1的标题。
如何让函数只使用ID为“ch1pg1”的父元素“程序”中的“标题”元素?
答
首先,当通过id
进行搜索时,您可以使用#
选择器来使事情变得更快更短。
您的第二行代码不起作用,因为您正在返回一个字符串,然后试图对其使用jQuery方法,这将无法正常工作。而是返回jQuery对象并使用它。试试这个:
success: function(xml) {
var $programmeOne = $(xml).find('#ch1pg1');
$('.p1').text($programmeOne.find('title').text());
}