我有一堆交互活动,它们是通过读取XML文件中的所有参数而写入的。我们正在摆脱FLASH,所以我正在编写一个脚本,它将读取我需要的XML元素,并动态地构建一个包含所有元素及其属性的JavaScript对象。最后,我通过JSON.stringify()传递对象并传回JSON版本。卡住动态构建javascript对象
我正在阅读XML中使用ajax调用与JQUERY然后JS和JQUERY的混合。我喜欢jQuery的DOM选择器。
我正在学习所有这些东西,因为我一直沿着这里走,我不是贸易开发商,所以当我到达需要处理一堆元素的时候,我碰到了一堵墙.each( )。尽管我不确定,但我仍在猜测它的语法。一切都很好,直到需要添加XML中的“面板”为止...... 我必须处理每个面板。
$.ajax({
type: "GET",
url: "activity.xml",
dataType: "xml",
success: function(xml) {
var activity = {
title : {
text: $(xml).find('title').text(),
xpos: $(xml).find('title').attr('xpos'),
ypos: $(xml).find('title').attr('ypos')
},
rubric : {
text: $(xml).find('rubric').text(),
xpos: $(xml).find('rubric').attr('xpos'),
ypos: $(xml).find('rubric').attr('ypos')
},
panels: {
$(xml).find('panel').each(function() {
panel :{width: $(this).attr('width'),
height: $(this).attr('height'),
xpos: $(this).attr('xpos'),
ypos: $(this).attr('ypos')
}});// end .each()
}// end panels object
});//end ajax.get(xml)
var activity_json = JSON.stringify(activity);
林肯定它没有这样做,但我不知道它应该如何。提前
感谢
在JSfiddle上放置这个简化版本 - 很难在没有看到原始数据的情况下发现问题。 过去我遇到的一件事是,你必须确保XML是有效的 - 一些闪存例程比web浏览器更宽容。你检查过所有的activity.xml是否正确验证? – pp19dd 2012-02-06 16:12:21