1

我有以下 RSS 提要,我正在尝试使用 touchXML 为 iphone 应用程序解析。

<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:ext="http://ooyala.com/syndication/ext/" xmlns:mediasl="http://www.slide.com/funspace/developer/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:boxee="http://boxee.tv/spec/rss/"> 
<channel> 
    <title>Channel Title</title> 
    <description>Channel Description</description> 
    <link>link</link> 
    <item> 
        <title>title</title> 
        <guid isPermaLink="false">k2dDRpMTpto4kdpU_NhGmNGKRK0Ny0PH</guid> 
        <pubDate>Fri, 25 Jun 2010 06:53:48 +0000</pubDate> 
        <media:title>title</media:title> 
        <media:keywords>Others</media:keywords> 
        <media:category scheme="http://www.ooyala.com">/JBay10</media:category> 
        <media:category scheme="http://www.ooyala.com">/JBay10/Webisodes</media:category> 
        <media:thumbnail url="http://ak.c.ooyala.com/k2dDRpMTpto4kdpU_NhGmNGKRK0Ny0PH/BqcWmm1bH0zjWgL35lMDoxOjBrO7OBB8" width="640" height="360"/> 
        <dcterms:valid>start=2010-06-25T06:53+00:00;scheme=W3C-DTF</dcterms:valid> 
        <media:group> 
            <media:content url="http://api.ooyala.com/syndication/stream_redirect?pcode=N2d2U6Azh1SxAcZeoJia-srBQAtY&amp;expires=1277743230&amp;streamID=2678810&amp;signature=beZ2o45XNredayqbtIzzL7khsnt1EEjwByf0yMgSEv8&amp;size=20985109&amp;length=163280" type="video/mp4" medium="video" expression="full" bitrate="900" framerate="25.0" samplingrate="32.0" duration="163" lang="en"/> 
        </media:group>
    </item>
    ...
</channel>

我遇到的问题是我无法访问<media:...>标签,尤其是<media:content>. 我使用以下方法解析 rss 提要的代码。

-(NSMutableArray *) grabXMLFeed:(NSString *)feedAddress{

    NSURL *url = [NSURL URLWithString: feedAddress];

    CXMLDocument *rssParser = [[[CXMLDocument alloc] initWithContentsOfURL:url options:0 error:nil] autorelease];
    NSArray *resultNodes = NULL;

    resultNodes = [rssParser nodesForXPath:@"//item" error:nil];
    NSMutableArray *videos = [[NSMutableArray alloc] init];

    for (CXMLElement *resultElement in resultNodes) {

        int counter;

        NSMutableDictionary *video = [[NSMutableDictionary alloc] init];

        for(counter = 0; counter < [resultElement childCount]; counter++) {

            NSString *val = [[resultElement childAtIndex:counter] stringValue];

            if ([val length] != 0) {
                [video setObject:[[resultElement childAtIndex:counter] stringValue] forKey:[[resultElement childAtIndex:counter] name]];
            }            
        }

        [videos addObject:[video copy]];
        [video release];
    }

    return videos;
}

我该怎么做才能将 url 存储在<media:content>?

谢谢

4

2 回答 2

4

改变

resultNodes = [rssParser nodesForXPath:@"//item" error:nil];

resultNodes = [rssParser nodesForXPath:@"//*[local-name()='item']" error:nil];

于 2011-05-03T11:56:28.883 回答
3

使用 touchXML,您可以使用标签后面的部分来解析<media:content>,<media:group>等标签...:

media:title -> title

media:keywords -> keywords
于 2010-12-31T07:06:18.923 回答