NSXML Parser查找父节点的子节点

时间:2013-04-09 06:29:19

标签: ios objective-c nsxml

我对XML解析完全陌生,有一个类似..

的XML结构
   <Chapter name = "chap1">
   <pages>one.html</pages>
   <pages>two.html</pages>
   </Chapter>
   Chapter name = "chap2">
   <pages>one.html</pages>
   <pages>two.html</pages>
   </Chapter>
   <Chapter name = "chap3">
   </Chapter>

我想单独阅读每章的页面...即如果章节有页面节点我想说是否则否。我怎么解析..我正在使用NSXml Parser

2 个答案:

答案 0 :(得分:0)

你必须尝试这样,

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
     if ([elementName isEqualToString:@"Chapter"]) 
     {
         ChapterOneFlag = YES;//use this as BOOL
     }
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSMutableString *)string
{
        buffContent=[buffContent stringByAppendingString:string];
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
      if (ChapterOneFlag == YES)
      {
        if ([elementName isEqualToString:@"pages"]) 
        { 
            [yourArr addObject:buffContent];
        }
     }
}

这是你想要的代码吗?在这里,您可以使用youArr。它将分开来。

答案 1 :(得分:-2)

你必须使用NSXMLParser

请查看编程指南:NSXMLParser Programming Guide