我有以下xml。我试图用gdataxml解析器解析这个。我能够解析xml的第一部分,<myBean>
到</myBean>
,但从第二部分,从<trackBean>
,它变得越来越难trackBean
内部递归。我发现很难为此开发逻辑。我在这里呆了第二天。如何解析下面的xml:递归案例
<return>
<myTrackBean>
<myBean>
<myStatus>false</myStatus>
<hisStatus>false</hisStatus>
<secondVcardBean>
<contactId>108</contactId>
<myNumber>KXUOYHGCIO</myNumber>
<userId>56</userId>
<version>1</version>
</secondVcardBean>
<myNumber>KXUOYHGCIO</myNumber>
</myBean>
<trackBean>
<myBean>
<myStatus>false</myStatus>
<hisStatus>false</hisStatus>
<secondVcardBean>
<contactId>105</contactId>
<myNumber>5D1X7XP6CW</myNumber>
<userId>54</userId>
<version>1</version>
</secondVcardBean>
<myNumber>5D1X7XP6CW</myNumber>
</myBean>
<trackBean>
<myBean>
<myStatus>false</myStatus>
<hisStatus>false</hisStatus>
<secondVcardBean>
<contactId>103</contactId>
<myNumber>0C3RM5UKBB</myNumber>
<userId>53</userId>
<version>8</version>
</secondVcardBean>
<myNumber>0C3RM5UKBB</myNumber>
</myBean>
</trackBean>
</trackBean>
</myTrackBean>
</return>
以下是我已经用于解析所述第一部分,从第一到<myBean>
< myBean>
的代码。我如何检查<trackBean>
是否存在其父内<trackBean>
NSArray * array = [node nodesForXPath:@"//return/myTrackBean" error:nil];
int noOfmyTrackBean = [array count];
for(int i = 1; i<= noOfmyTrackBean; i++){
NSString *tempXmlData = [NSString stringWithFormat:@"//return/myTrackBean/myBean"];
NSString *myStatus = [node nodeStringForXPath:[tempXmlData stringByAppendingString:@"/myStatus"]];
NSString *hisStatus = [node nodeStringForXPath:[tempXmlData stringByAppendingString:@"/hisStatus"]];
NSString *contactId = [node nodeStringForXPath:[tempXmlData stringByAppendingString:@"/secondVcardBean/contactId"]];
NSString *myNumber = [node nodeStringForXPath:[tempXmlData stringByAppendingString:@"/secondVcardBean/myNumber"]];
我明白,难的是在进入内部<trackBean>
我编辑了这个问题。 – 2012-03-29 17:32:56
回答是在这里去http://forums.macrumors.com/showthread.php?t=1000963 – akk 2012-03-30 07:23:20
谢谢。但我正在寻找GDataXml解析 – 2012-03-30 08:48:50