-3

Web サービスを介して xml ファイルに入っている URL をいくつか読みたいと思います。

<chaneels>
    <chaneel name="AAA">
        <url>http://188.138.95.120:8010/</url>
    </chaneel>
    <chaneel name="gold">
        <url>http://188.138.95.120:8020/</url>
    </chaneel>
    <chaneel name="BBB">
        <url>http://188.138.95.120:8090/</url>
    </chaneel>
    <chaneel name="CCC">
        <url>http://188.138.95.120:8050/</url>
    </chaneel>
    <chaneel name="DDD">
        <url>http://209.239.127.105:8010/</url>
    </chaneel>
</chaneels>

これはXML、Web サービスから取得したものです。次に、これらの各 URL を個別に取得します。誰でもこれを行う方法を教えてもらえますか?

4

1 に答える 1

1

最初に、 、 、 が宣言されている要素をチェックして、chaneelパーサーitemcurrentName開始currentURLallDataますproperty

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
    if([elementName isEqualToString:@"channel"]) {
         item = [[NSMutableDictionary alloc] init];
         currentName = [[NSMutableString alloc] init];
         currentURL = [[NSMutableString alloc] init];
         [currentName appendString:[attributeDict objectForKey:@"name"]];
    }
}

その後、欲求値を取得します....

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
     if([currentElement isEqualToString:@"url"]) {
            [currentURL appendString:string];
        }
}

その後、このメソッドで欲望キーを使用して値を辞書に保存します...

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
    if([elementName isEqualToString:@"channel"]) {
        [item setObject:currentName forKey:@"Name"];
        [item setObject:currentURL forKey:@"URL"];

        [allData addObject:[item copy]];
    }
}

では、allData名前に対応するすべての URL を取得します...

于 2013-06-04T07:58:00.223 に答える