-1

我正在 iPhone 上编写一个 RSS 项目。我想知道如何剥离此标签中的所有内容以获取图像 URL:

<description><![CDATA[ <a href="http://vnexpress.net/gl/xa-hoi/2012/05/lat-xe-cho-25-000-lit-xang-ca-tram-nguoi-hoi-cua/"><img src="http://vnexpress.net/Files/Subject/3b/bd/67/91/Lat-xe-xang-2.jpg"></a>Trưa 7/5, chiếc xe bồn chở 25.000 lít xăng từ Hà Tĩnh vào Quảng Bình bị lật nghiêng trên quốc lộ 1A khiến xăng chảy lênh láng ra đường. ]]></description>

我只想得到字符串

http://vnexpress.net/Files/Subject/3b/bd/67/91/Lat-xe-xang-2.jpg

请告诉我在这种情况下该怎么做?

4

3 回答 3

0

编辑: 哦,@Ankit Srivastava 的答案是正确的。我没有发现这是一个 CDATA 块。按照他的回答,但我不会删除我的,因为这对你仍然有用。

您应该实现 NSXMLParser 委托。在你的 .h 文件<NSXMLParserDelegate> 中然后你必须在你的 m 文件中放入 3 个有用的方法。

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict 

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

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
            {
                if (element == nil) // where element is a NSMutableString
                    element = [[NSMutableString alloc] init];

                [element appendString:string];
            }

这并不重要,否则它总是会调用didStart end didEnd。现在我们有 ex: :

elementName //contains your tag name. In this case "mytag"
element // contains text beetween tags. In this case null. But in <mytag>something</mytag> element = something.
attributeDict //This is probably most important to you. That contains NSDictionary with all your parameters. In above example this is a dictionary with key: myparam and object: test
于 2012-05-08T09:13:37.047 回答
0

我推荐 NSXMLParser。

见这里:http: //developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSXMLParser_Class/Reference/Reference.html

于 2012-05-08T09:01:15.273 回答
0

用这个方法...

- (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock
{
    NSString *someString = [[NSString alloc] initWithData:CDATABlock encoding:NSUTF8StringEncoding];

}

希望这有帮助..

于 2012-05-08T09:08:45.630 回答