-3

わかりました基本的に、私はサブ要素を解析しようとしています:

<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);
}

それが第1号です。私が抱えている2番目の問題は、上記に関連して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: OK、問題を解決しました。

currentNodeContent を出力できたため、「currentIssue = nil」によりオブジェクトの内容が失われたようです。

そのため、currentIssue を削除することで、必要なすべての要素を確認できるようになりました。

しかし、もう1つ問題があります。これですべてのサブ要素が表示されますが、部分的に取得されたサブ要素が 1 つしか残っていないため、理由がわかりません。

4

3 に答える 3