Objective C 및 스택 오버플로가 매우 새롭습니다. 온라인 XML 문서를 구문 분석하려고합니다. 피드는 5 개 항목을 가지고 있으며, 그들 각각은 다음과 같습니다NSXMLParser는 피드의 마지막 개체 만 가져옵니다.
<item>
<title>the title goes here</title>
<link>http://thelink.com</link>
<guid>http://thelink.com</guid>
<category>News</category>
<description/>
<pubDate>Wed, 20 Nov 2013 20:36:00 +0430</pubDate>
<author>newsFeedAsc</author>
</item>
최상위 노드는 다음과 같습니다 이제 때 NSLog
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *[email protected]"http://thelink.thelink/api/news?news_type=2&limit=5";
NSURL *url = [NSURL URLWithString:urlString];
NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
[parser setDelegate:self];
[parser setShouldResolveExternalEntities:NO];
[parser parse];
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
element = elementName;
if ([element isEqualToString:@"item"])
{
item = [[NSMutableDictionary alloc] init];
title = [[NSMutableString alloc] init];
link = [[NSMutableString alloc] init];
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
if ([element isEqualToString:@"title"]) {
[title appendString:string];
} else if ([element isEqualToString:@"link"]) {
[link appendString:string];
}
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if ([elementName isEqualToString:@"item"]) {
[item setObject:title forKey:@"title"];
[item setObject:link forKey:@"link"];
[feeds addObject:[item copy]];
}
}
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
NSLog(@"%@",feeds);
}
: 나는 다음과 같은 코드를 사용
<rss version="2.0">
<channel>
<title>feed RSS</title>
<link>Feedlink.com</link>
<description>...</description>
<language>fa-ir</language>
<pubDate/>
<lastBuildDate/>
<docs>......</docs>
<generator>.....</generator>
<ttl>5</ttl>
<image>
<title>RSS</title>
<url>
......images/ver2/rsslogo.gif
</url>
<link>.......</link>
</image>
"피드"내가 null 개체를 얻을. 그리고 언제 NSLog "항목"내가 피드의 마지막 항목을 얻을. 내가 틀리지 않다면 XML 트리 전체가 "피드"에 있어야합니다.
최상위 노드 란 무엇입니까? – vikingosegundo
@vikingosegundo 방금 답변의 최상위 노드를 추가했습니다. – devdev101