解析子元素我的XML看起來是這樣的:與TBXML
<root>
<sets>
<childSets>
<childs>
<child>
<childId>11</childId>
</child>
<child>
<childId>22</childId>
</child>
<child>
<childId>33</childId>
</child>
<child>
<childId>44</childId>
</child>
[...]
</childs>
</childSets>
<childSets>
[...]
</childSets>
</sets>
</root>
我想收杆的child
所有childId
元素。
其實,我分析的結果只是第一childId
每childs
元素:
[...]
do {
if ([[TBXML elementName:element] isEqualToString:@"childSet"]) {
[...]
TBXMLElement *xmlChildId = [TBXML childElementNamed:@"childId" parentElement:child];
[...]
}
} while ((element = element->nextSibling));
[...]
在這種情況下,我只是得到11
。這裏有什麼問題?
編輯1:
的解決辦法是找到子元素的第一個孩子,並解析這個接下來的元素,那就是:
此代碼是在do while循環的方法traverseElement
do { [...]
if ([[TBXML elementName:element] isEqualToString:@"childSet"]) {
//find the first child
if ((ChildPARENTELEMENT->firstChild)) {
while (ChildOfCHILDELEMENT!=nil) {
NSLog(@"....");
ChildOfCHILDELEMENT = [TBXML nextSiblingNamed:@"childs" searchFromElement:ChildOfCHILDELEMENT];
}
}
}
while((element = element->nextSibling));
你仍然堅持在這? – Sam
是的,第二個是在崩潰應用程序時執行的。我不知道如何解決第二個循環。你能給我一個建議嗎? – brush51
請包含有關您所看到的錯誤的更多信息。你是否得到SIGABRT?應用程序關閉,沒有日誌/調試信息?如果有調試信息,哪條線路崩潰並出現什麼錯誤信息? – Sam