0

我想在我的 iOS 中读取一个 xml 文件。我是这样读的

NSURL *url = [[NSURL alloc] initWithString:urlString] ;


purchasedBookXMLParser = [[NSXMLParser alloc] initWithContentsOfURL:url];


PurchasedBookXMLParser *bookParser = [[PurchasedBookXMLParser alloc] initPurchasedBookXMLParser];

[purchasedBookXMLParser setDelegate:bookParser];

BOOL success = [purchasedBookXMLParser parse];

但我总是不成功。当我在浏览器中提供相同的 url 时,我可以看到 xml 数据。这是什么原因。我该如何解决这个问题。请帮我。

谢谢

4

1 回答 1

0

你实现了解析器委托方法吗?在我的项目中,我正在做的事情如下

NSURL *url = [NSURL URLWithString:@"https://api.sportsdatallc.org/nascar-p3/sc/2015/races/schedule.xml?api_key=wstdt33unpyk7sgpmjj5qver"];
parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
[parser setDelegate:self];
[parser setShouldResolveExternalEntities:NO];
[parser parse];

在解析器委托方法调用之后,如下所示如果你想要“race”标签之间的数据,那么 [element isEqualToString:@"race"]

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
    NSString *element;
    element = elementName;
    if ([element isEqualToString:@"race"])
    {
      item2=[[NSMutableDictionary alloc] init];
      [item2 setObject:attributeDict forKey:@"race"];
    }
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 
{

}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName 
{

}
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
   [self.tableview reloadData];
}
于 2015-05-27T05:38:39.743 回答