Javascript-从XML获取数据以供以后使用。。。放入数组还是对象?

Javascript-从XML获取数据以供以后使用。。。放入数组还是对象?,javascript,jquery,Javascript,Jquery,我正在使用jQuery从XML文件中提取一组数据。我需要使用这些数据来填写图像路径、名称等 收集所有这些数据以供使用的最佳方式是什么?例如,我得到的一切都是这样的: $(document).ready(function() { $.ajax({ type: "GET", url: "stuff.xml", dataType: "xml",

我正在使用jQuery从XML文件中提取一组数据。我需要使用这些数据来填写图像路径、名称等

收集所有这些数据以供使用的最佳方式是什么?例如,我得到的一切都是这样的:

 $(document).ready(function() {
                $.ajax({
                    type: "GET",
                    url: "stuff.xml",
                    dataType: "xml",
                    success: function(xml) {
                        $(xml).find('speaker').each(function(){
                            var img_path = $(this).find('speaker_image').text();
                            var name_text = $(this).find('speaker_name').text();
                            // should I build an array or object here?
                        });
                    }
                });
            });
我应该在success方法中将所有内容都粘贴到一个数组中吗?也许在一个物体里?我将要做的是获取收集到的数据,并使用它来构建名称和图像的列表。这其中有相当多的元素,看起来像(图像url中使用了
img\u路径
,标签中使用了
name\u文本

<ul>
<li><img src="images/bobsmith.jpg" /><br /><lable>Bob S. Smith</label></li>
<li><img src="images/crystalforehead.jpg" /><br /><lable>Crystal X. Forehead</label></li>
...
</ul>

  • 鲍勃·史密斯

  • 水晶前额
  • ...

处理收集的数据的最佳方法是什么,这样我就可以使用它浏览并构建所需的html?

如果不需要重复使用XML文件中的数据,为什么不在读取数据时构建DOM元素呢

例如,在你的成功方法中:

$(xml).find('speaker').each(function(){
    var img_path = $(this).find('speaker_image').text();
    var name_text = $(this).find('speaker_name').text();
    var html = '<li><img src="' + img_path + '" /><br /><label>' + name_text + '</label></li>';
    $("#myList").append(html);
});
$(xml).find('speaker').each(function(){
var img_path=$(this).find('speaker_image').text();
var name_text=$(this).find('speaker_name').text();
var html='

  • '+name_text+'
  • '; $(“#myList”).append(html); });
    如果需要重复使用,请将其放入数组对象中:

    function linkItem(linkImage, linkText)
    {
        this.linkImage = linkImage;
        this.linkText = linkText;
    };
    
    function mylist()
        this.speakerList = new Array();
        $(xml).find('speaker').each(function()
        {
            this.speakerList [$(this).index()] = new linkItem($(this).find('speaker_image').text(), $(this).find('speaker_name').text());
        };
    };
    
    如果只使用一次,只需构建它:

    var myhtml = ""
    $(xml).find('speaker').each(function(){ 
        myhtml = myhtml + '<li><img src="' + $(this).find('speaker_image').text() + '" /><br /><label>' + $(this).find('speaker_name').text() + '</label></li>'; 
    });
    


    这将使用
    push
    将检索到的结果放入一个数组中:

       success: function(xml) {
                var results = [];
                $(xml).find('speaker').each(function(){
                    results.push($(this));
                });
    

    仅供参考,在Javascript中,数组是对象,您可以拥有一个对象数组。
    $(selector).innerHtml(myhtml);
    
       success: function(xml) {
                var results = [];
                $(xml).find('speaker').each(function(){
                    results.push($(this));
                });