好的,基本上,我正在尝试解析一个子元素:
<element>
<sub element 1>
<sub element 2>
<sub element 3>
<element>
我要解析的当前原始文档包含如下示例: sub-element-content1: AB, CD, DE, & SOMETHING DISPLAYED
。
我只好抓住了& SOMETHING DISPLAYED
。我无法解析整个子元素。
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
currentNodeContent = (NSMutableString *)[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
//NSLog(@"CURRENT CONTENT: %@", currentNodeContent);
}
这是第一个问题。我遇到的第二个问题是上面提到的应该有 11 个项目。但它只设法抓住了 2 件物品。请注意,每个项目都包含子元素,除了一些子元素是null
Issues has been added: (null)-(null)-(null)
Issues has been added: sub-element-1 sub-element2 sub-element3
以下是部分内容didEndElement
:
if ([elementName isEqualToString:@"Issue"]) {
//add currentIssue object into issues array
[issues addObject:currentIssue];
NSLog(@"Issues has been added: %@-%@-%@", currentIssue.sub-element-1, currentIssue.sub-element-2, currentIssue.sub-element-3);
currentIssue = nil;
currentNodeContent = nil;
}
if ([elementName isEqualToString:@"sub element 1"]) {
currentIssue.sub-element-1 = currentNodeContent;
NSLog(@"sub element 1: %@", currentIssue.sub-element-1);
}
if ([elementName isEqualToString:@"sub element 2"]) {
currentIssue.sub-element-2 = currentNodeContent;
NSLog(@"sub element 2: %@", currentIssue.sub-element-2);
}
if ([elementName isEqualToString:@"sub element 3"]) {
currentIssue.sub-element-3 = currentNodeContent;
NSLog(@"sub element 3: %@", currentIssue.sub-element-3);
}
非常感谢您的意见和/或建议。
更新1:好的,我已经解决了这个问题。
看来“currentIssue = nil”会导致对象丢失其内容,因为我能够打印出 currentNodeContent。
因此,通过删除 currentIssue,我现在能够看到我需要的所有假定元素。
但是还有一个问题。我现在可以看到所有子元素,但只剩下一个子元素被部分抓取,我不明白为什么。