在我正在制作的 iOS 程序中,我正在请求使用 SOAP 的课程列表。这是回复格式
<ListCoursesResponse>
<statusMessage xmlns="xxx">string</statusMessage>
<courseID xmlns="xxx">string</courseID>
<courseTitle xmlns="xxx">string</courseTitle>
</ListCoursesResponse>
<ListCoursesResponse>
<statusMessage xmlns="xxx">string</statusMessage>
<courseID xmlns="xxx">string</courseID>
<courseTitle xmlns="xxx">string</courseTitle>
</ListCoursesResponse>
我使用的方法是将每个单独的课程提取为数组中的一个元素,而不是逐步遍历每个课程的数组并提取课程 ID 之间的内容。但是,我不知道如何提取多个,因为当我返回它时,它只显示第一门课程。如果我以不好的方式解释了这一点,请告诉我,以便我可以尝试更好地解释。
我的问题是,处理在 XML 响应中返回的大量课程(200 多个)的最佳方法是什么?
编辑:我正在使用的代码片段,它只返回 1 个 ID。
NSString *tag1Open = @"<ListCoursesResponse>";
NSString *tag1Close = @"</ListCoursesResponse>";
NSString *courseIDOpen = @"<courseID xmlns=\"http://drm.mediuscorp.com/\">";
NSString *courseIDClose = @"</courseID>";
result = @"";
NSArray *XMLarray1 = [XMLResult componentsSeparatedByString:tag1Open];
if ([XMLarray1 count] > 1) {
for (int i = 0; i < [XMLarray1 count]; i++) {
NSString *courseIDString = [[[XMLarray1 objectAtIndex:1]componentsSeparatedByString:tag1Close]objectAtIndex:0];
NSArray *courseID = [XMLResult componentsSeparatedByString:courseIDOpen];
if ([courseID count] > 1) {
for (int i = 0; i < [courseID count]; i++) {
courseIDString = [[[courseID objectAtIndex:1]componentsSeparatedByString:courseIDClose]objectAtIndex:0];
}
}
NSLog(@"Course ID: %@",courseIDString);
}
[persArray addObject:result];
for (int i = 0; i < [persArray count]; i++) {
NSLog(@"%@",[persArray objectAtIndex:i]);
}
}