중첩 된 요소가 XML 안에 나타날 때 TouchXML을 사용하는 방법은 무엇입니까? . 여기TouchXML을 사용하여 중첩 된 XML 요소를 구문 분석하고 빌드 할 수 없습니다.
<itemList>
<item>
<name>SomeName</name>
<description>Some description</description>
<images>
<image>image1.png</image>
<image>image5.png</image>
</images>
</item>
<item>
<name>SomeName</name>
<description>Some description</description>
<images>
<image>image1.png</image>
<image>image5.png</image>
</images>
</item>
</itemList>
구문 분석 코드 것 :
resultNodes = [itemListParser nodesForXPath:@"//items" error:nil];
NSMutableDictionary *itemDic = [[NSMutableDictionary alloc] init];
itemList = [[[NSMutableArray alloc] init] autorelease];
NSMutableArray *images = [[NSMutableArray alloc] init];
// Loop through the resultNodes to access each items actual data
for (CXMLElement *resultElement in resultNodes) {
for(int i = 0; i < [resultElement childCount]; i++) {
if ([[[resultElement childAtIndex:i] name] isEqualToString: @"images"]){
[images removeAllObjects];
for(int j = 0; j < [[resultElement childAtIndex:i] childCount]; j++) {
[images addObject:[[resultElement childAtIndex:j] stringValue]];
}
[itemDic setObject:images forKey:[[resultElement childAtIndex:i] name]];
} else {
[itemDic setObject:[[resultElement childAtIndex:i] stringValue] forKey:[[resultElement childAtIndex:i] name]];
}
}
[itemList addObject:[[itemDic copy] autorelease]];
}
[itemDic release];
[images release];
I 사전 키에 대한 NSArray를 내부 둥지 이미지 이름에 필요하고 싶습니다 @ "이미지"그러나 뭔가 코드 :(에 이상이 여기에 XML의 구조입니다
글쎄, 나는 xpath를 사용하는 것에 대해 불만을 갖고있다. xpath를 사용할 때 코드는 xml에 의존하게된다. 내 말은, 어떤 깊이 xml 문서 (특성을 사용하지 않는)를 구문 분석하는 범용 코드 파서를 갖고 싶습니다. 예를 들어, 구문 분석해야 할 2 xml이 있습니다. 둘 다 매우 간단합니다. 속성이 없으며 항목 목록 일뿐입니다. 그러나 하나의 XML에서 모든 요소는 태그 이름 "이미지"의 내부 요소 (자식)와 다른 "위치"를 가질 수 있습니다. xpath를 사용하면 하드 코딩이되어 다른 XML에 대해이 메서드를 사용할 수 없게됩니다. – Centurion