【发布时间】:2013-07-15 13:36:57
【问题描述】:
好的,非常基本的问题。我只是不明白这个。我正在解析一个 xml 提要。我正在标签内搜索图像的正则表达式。此刻,当我打印时
str.match(patt1)
,
我得到:
http://www.highlandradio.com/wp-content/uploads/2013/03/jimmy.jpg,http://www.highlandradio.com/wp-content/uploads/2013/03/jimmy.jpg,jpg
在控制台中。我只需要第一个元素,即
http://www.highlandradio.com/wp-content/uploads/2013/03/jimmy.jpg
为此,我尝试了 str.match(patt1)[0] 但这条线导致我的应用程序崩溃。我将此变量设置为等于表行的 leftImage 属性。我还在测试“继续”循环是否为空,因为我认为这可能是问题所在。
我也试过 str.match(patt1[0]) 但这个 si 也没有给我想要的输出。我做错了什么?
编辑:APP JS 如下:
var win1 = Titanium.UI.createWindow({
title:'Tab 1',
backgroundColor:'#fff',
//tabBarHidden: true
});
var tab = Titanium.UI.createTab({
icon:'KS_nav_views.png',
title:'Tab 1',
window:win1
});
var data = [];
var table = Ti.UI.createTableView({
//data:data
});
var url="http://www.highlandradio.com/feed/";
//rss feed url
//var url="http://apod.nasa.gov/apod.rss"; // rss feed url
var xhr = Titanium.Network.createHTTPClient();
xhr.onload = function() {
// Data is returned from the blog, start parsing
var doc = this.responseXML.documentElement;
// begin looping through blog posts
var items = doc.getElementsByTagName("item");
console.log(items);
for (var i=0;i<items.length;i++) {
var str=items.item(i).getElementsByTagName("content:encoded").item(0).text;
console.log("FIRST STRING TEST "+ str);
//var src= items.item(i).getElementsByTagName("content:encoded").item(0).getAttribute("src");
//console.log("FIRST SRC TEST "+ src);
var patt1=/([a-z\-_0-9\/\:\.]*\.(jpg|jpeg|png|gif))/i;
var urlMatch = str.match(patt1);
data.push({
title: items.item(i).getElementsByTagName("title").item(0).text,
leftImage: urlMatch.length > 0 ? urlMatch[0] : 'NewsStory.png',
dataToPass: items.item(i).getElementsByTagName("description").item(0).text,
className: "TableRow",
hasChild: true,
jsTest: true,
js:"external.js"
});
}
table.setData(data);
};
xhr.onerror = function(e) {
// should do something more robust
alert('Network error '+e.error);
};
xhr.open('GET',url);
xhr.send();
win1.add(table);
win1.open();
【问题讨论】:
-
你能定义“崩溃”是什么意思吗?
-
@Ray Nicholas 通过崩溃我的意思是,应用程序停留在启动屏幕上,并且 str.match(patt1)[0] 行以蓝色突出显示,我被告知要调试该行
标签: javascript xml image syntax null