0

我有以下问题:我正在构建一个电视指南应用程序。我正在从 Internet 上的 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等等。?提前致谢!

4

2 回答 2

1
  1. 首先,使用 URL 中使用的相同格式获取今天的日期。(您必须使用单独date的 ,monthyear组件)

  2. 然后,将该日期转换为NSString对象

  3. 形成一个NSStringNSString *strToDay = [NSString stringWithFormat:@http://pik.bg/TV/bnt1/%@.xml",strToDay];

  4. 使用字符串进入NSURL,like; NSURL *urlListing = [NSURL URLWithString:strToDay];

注意此解决方案仅在您的 URL 包含您指定的日期格式时才有效。

于 2013-04-01T10:03:54.130 回答
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);
于 2013-04-01T10:31:14.283 回答