我有以下格式的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();
答案 0 :(得分: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,
});
}}