使用jQuery进行XML解析

我有以下xml:

       

我试图用jquery解析:

  $(document).ready(function(){ $.ajax({ type: "GET", url: "list.xml", dataType: "xml", success: function(xml) { $(xml).find('scenes').each(function(){ $(this).find('scene').each(function(){ var name = $(this).attr('name'); $('
').html('

'+name+'

').appendTo('#page-wrap'); }); }); } }); });

为什么这不起作用? 救命!! 首次尝试javascript / jquery这是基于我发现的一个例子,但到目前为止还无法使其适应我的用法。 / Lars

此代码适用于Safari和(令人惊讶的)Firefox:

 $.ajax({ type: "GET", url: "list.xml", dataType: "xml", success: function(xml) { $(xml).find('Scenes').each(function(){ $(this).find('Scene').each(function(){ var name = $(this).attr('Name'); $('
').html('

'+name+'

').appendTo('#page-wrap'); }); }); }, error:function(a,b,c) { console.log( c ) } });

它在某些浏览器中不起作用的原因可能是由于您从文件系统托管(假设您是)。 由于同源策略,Chrome和Firefox在通过AJAX请求访问文件系统时会出错。

javascript很好。 你要么得到一个空的回复,要么得到一个错误。

这个问题可能适用:

使用Chrome中的本地文件的jQuery getJSON问题

尝试从浏览器的控制台运行代码,而不是在文档准备好时。 它将允许您更快地迭代事物。 在Firefox中尝试使用FireBug作为初学者。 我发现在调试复杂动作时,FB控制台比在基于Webkit的浏览器中更容易使用。

您也可以尝试在$.ajax()调用中添加errorcomplete 回调函数 。

 $.ajax({ // ... error: function (req, err_type, ex) { console.log("error..."); }, complete: function (req, status) { console.log("complete..."); } }); 

您还可以尝试在成功处理程序中放入一些警报或console.logs。 足以确保您知道它正在被调用并获得您期望它获得的xml结果。

尝试改变这个:

 $('
')

对此:

 $('.items')