XML解析框

时间:2016-07-12 22:00:17

标签: ios objective-c xml parsing xml-parsing

我有两个" enclosure"不同的"类型" ... 我该如何制作解析器" audio / mpeg"解析URL .mp3以使用MediaPlayer播放

<enclosure url="http://www.radiozerosix.fr/upload/podcasts/audios/5784338b042d41.79777284.mp3" type="audio/mpeg" length="5986913"/>
<enclosure url="http://www.radiozerosix.fr/upload/podcasts/photos/main/5784338b047468.88036252_mini.png" type="image/png" length="131302"/>

1 个答案:

答案 0 :(得分:0)

这实际上非常简单。您应该能够使用NSXMLParser的parser:didStartElement:namespaceURI:qualifiedName:attributes:方法中的属性字典从每个enclosure元素中获取URL。

你可以像这样检索它:

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
   if ([elementName isEqualToString:@"enclosure"]) {
       [self.mediaURLArray addObject:attributeDict[@"url"];
   }
}

如果您只需要音频文件的网址,您也可以对其进行过滤:

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
   if ([elementName isEqualToString:@"enclosure"]) {
        if ([attributeDict[@"type"] isEqualToString:@"audio/mpeg"]) {
                self.mediaURL = attributeDict[@"url"];
        }
    }
}

完成此操作后,您应该能够使用mediaURL属性传输该音频文件。