我有以下问题:我正在构建一个电视指南的应用程序。我正在从互联网上的xml文件解析频道列表。这是我的代码:
-(void)loadListing
{
NSURL *urlListing = [NSURL URLWithString:@"http://pik.bg/TV/bnt1/29.03.2013.xml"];
NSData *webDataListing = [NSData dataWithContentsOfURL:urlListing];
NSString *xPathQueryListing = @"//elem/title";
TFHpple *parserListing = [TFHpple hppleWithXMLData:webDataListing];
NSArray *arrayListing = [parserListing searchWithXPathQuery:xPathQueryListing];
NSMutableArray *newArrayListing = [[NSMutableArray alloc] initWithCapacity:0];
for (TFHppleElement *element in arrayListing)
{
Listing *shows = [[Listing alloc] init];
[newArrayListing addObject:shows];
shows.broadcast = [[element firstChild] content];
}
_shows = newArrayListing;
[self.tableView reloadData];
}
查看第一行 - 我的文件名是 /.../ 01.04.2013.xml 明天的文件将是 /.../ 02.04.2013.xml 等。 如何根据当前日期解析不同的文件?像这样:今天解析/.../01.04.2013,明天将解析/.../02.04.2013等?提前谢谢!
答案 0 :(得分:1)
首先,使用URL中使用的相同格式获取今天的日期。 (您必须使用单独的date
,month
和year
组件
然后,将该日期转换为NSString
对象
形成NSString
,例如NSString *strToDay = [NSString
stringWithFormat:@http://pik.bg/TV/bnt1/%@.xml",strToDay];
将字符串用于NSURL
,如;
NSURL *urlListing = [NSURL URLWithString:strToDay];
注意此解决方案仅在您的网址包含您指定的日期格式时才有效。
答案 1 :(得分:0)
您可以使用已配置的NSDateFormatter
属性生成相应格式的字符串。使用NSDate
返回的[NSDate date]
实例获取今天的日期,并使用格式化程序生成字符串。最后,将日期的字符串表示形式插入到URL字符串中,并从中构建NSURL
。
// Assuming the TV schedule is derived from the Gregorian calendar
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
// Use the user's time zone
NSTimeZone *localTimeZone = [NSTimeZone localTimeZone];
// Instantiate a date formatter, and set the calendar and time zone appropriately
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setCalendar:gregorianCalendar];
[dateFormatter setTimeZone:localTimeZone];
// set the date format. Handy reference here: http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns
[dateFormatter setDateFormat:@"dd.MM.yyyy"];
// [NSDate date] returns a date corresponding to 'right now'.
// Since we want to load the schedule for today, use this date.
// stringFromDate: converts the date into the format we have specified
NSString *dateString = [dateFormatter stringFromDate:[NSDate date]];
// insert the date string into the URL string and build the URL
NSString *URLString = [NSString stringWithFormat:@"http://pik.bg/TV/bnt1/%@.xml", dateString];
NSURL *URL = [NSURL URLWithString:URLString];
NSLog(@"URL = %@", URL);