2013-05-15 130 views
0

我有以下格式的XML文件,使用JavaScript解析XML字符串

在Data1阵列,我得到第一个'webportal:highResUrl的价值,但不是所有的值(即“webportal:highResUrl”包含2值)。我在data1数组中获得重复的值。

<root> 
<item> 
<webportal:files> 
    <webportal:highResUrl>http://xxx.xom/image</webportal:highResUrl> 
    <webportal:highResUrl>http://xxx.xom/image</webportal:highResUrl>  
</webportal:files> 
</item> 
<item> 
<webportal:files> 
    <webportal:highResUrl>http://xxx.xom/image</webportal:highResUrl> 
    <webportal:highResUrl>http://xxx.xom/image</webportal:highResUrl>  
</webportal:files> 
</item> 
</root> 



var data = []; 
    var data1=[]; 
    var xhr = Ti.Network.createHTTPClient();   
    xhr.onload = function() 
    {  
      var doc = this.responseXML.documentElement; 
      var items = doc.getElementsByTagName("item");  
      for (var c=0;c<items.length;c++) 
      {     
       var item = items.item(c); 
       var sTitle1 = item.getElementsByTagName("title").item(0).text; 
       var itemswebportal=item.getElementsByTagName("webportal:files"); 

        for(var j=0;j<itemswebportal.length;j++){ 

         var sTeamHighResouImage = item.getElementsByTagName("webportal:highResUrl").item(0).text 
         data1.push({ 
         path: sTeamHighResouImage, 
         });    
        }}} 
    }; 
    xhr.send(); 

回答

1

因为你是从<webportal:highResUrl>

item.getElementsByTagName("webportal:highResUrl").item(0).text 

上面一行只返回的第一个<webportal:highResUrl>文本只得到一个值。这似乎是一个静态所以只是使它在一个循环来获取所有值

for(var j=0;j<itemswebportal.length;j++){ 
    for(var k=0;k<item.getElementsByTagName("webportal:highResUrl").length;k++) 
        { 
         var sTeamHighResouImage = item.getElementsByTagName("webportal:highResUrl").item(k).text 
         data1.push({ 
         path: sTeamHighResouImage, 
         });    
        }} 
+0

ü可以给我一个解决方案(即如何循环) – vishnu

+0

@vishnu编辑.... –

+0

感谢ü。 。 我在做 – vishnu