xml解析iphone问题
我正在使用NSXMLParser,但是我不太明白如何正确显示xml中的项。例如,我在xml解析器中有:xml解析iphone问题,iphone,objective-c,xml,ipad,ios4,Iphone,Objective C,Xml,Ipad,Ios4,我正在使用NSXMLParser,但是我不太明白如何正确显示xml中的项。例如,我在xml解析器中有: - (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
- (void) parser:(NSXMLParser *)parser
didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName
attributes:(NSDictionary *)attributeDict
{
if ([elementName isEqualToString:@"level4"]) {
//add a book object to the array at the index determined by bookCount
self.bookCount++;
[books addObject:[[book alloc]init]];
//[books insertObject:[[book alloc]init] atIndex:self.bookCount];
}
if ([elementName isEqualToString:@"module"]) {
isFirstName = YES;
}
if ([elementName isEqualToString:@"moduleTitle"]) {
isLastName = YES;
}
if ([elementName isEqualToString:@"semester"]) {
isTitle = YES;
}
if ([elementName isEqualToString:@"assessmentName"]) {
isGenre = YES;
}
}
这是我的xml
<myCourse>
<courseName>BEng Mobile and Web Computing</courseName>
<courseStructure>
<level4>
<module>
<moduleCode>ECSC401</moduleCode>
<moduleTitle>Programming Methodology</moduleTitle>
<credits>15</credits>
<semester>1</semester>
<assessmentDetails>
<assessment>
<assessmentName>Test1</assessmentName>
<assessmentType>Coursework</assessmentType>
<assessmentWeighting>30</assessmentWeighting>
<assessmentDueDate/>
</assessment>
<assessment>
<assessmentName>Coursework</assessmentName>
<assessmentType>Coursework</assessmentType>
<assessmentWeighting>40</assessmentWeighting>
<assessmentDueDate/>
</assessment>
<assessment>
<assessmentName>Test2</assessmentName>
<assessmentType>Coursework</assessmentType>
<assessmentWeighting>30</assessmentWeighting>
<assessmentDueDate/>
</assessment>
</assessmentDetails>
</module>
</level4>
</courseStructure>
</myCourse>
移动和网络计算
ECSC401
编程方法
15
1.
测试1
作业
30
作业
作业
40
测试2
作业
30
(它使用相同的格式继续级别1、级别2、级别3)。我只想显示“level4”层次结构下的所有模块-我怎么做?/我做错了什么?显示的项目不是正确的项目。使用两种方法:
-(void)parser:(NSXMLParser*)parser didStartElement:(NSString*)elementName namespaceURI:(NSString*)namespaceURI qualifiedName:(NSString*)qName属性:(NSDictionary*)attributeDict
及
-(void)parser:(NSXMLParser*)parser didEndElement:(NSString*)elementName namespaceURI:(NSString*)namespaceURI qualifiedName:(NSString*)qName
用于解析。首先,您必须创建一个NSMutableDictionary。当您在didStartElement方法中获得标记时,启动此字典。并设置一个标志 在find character方法中检查该标志,如果是,则存储该标记值,并在查找时在didEndElement中存储该字典中的所有值 使用此选项可以找到所有级别的值。
希望这能对您有所帮助。仍然无法回答我的问题,为什么它只读取最后一个元素。。以及如何从只读元素到或的可能副本。你挑吧。