1
我解析XML
response.But我沒有得到期望的result.Could不明白的地方,我要去錯了嗎? 我的XML響應如下所示:在iphone中使用NSXMLParser進行XML解析?
<List>
<User>
<Id>1</Id>
</User>
<User>
<Employee>
<Name>John</Name>
<TypeId>0</TypeId>
<Id>0</Id>
</Employee>
<Id>0</Id>
</User>
</List>
從這個我想ID(1)和名稱(約翰)的價值。我不想ID(0)
我的解析代碼是:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
if ([elementName isEqualToString:@"List"])
{
arr=[[NSMutableArray alloc] init];
drr=[[NSMutableDictionary alloc] init];
}
srr=[[NSMutableString alloc] init];
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
[srr appendString:string];
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
if([elementName isEqualToString:@"Id"])
{
[drr setObject:srr forKey:@"Id"];
[srr release],srr=nil;
return;
}
if([elementName isEqualToString:@"Name"])
{
[drr setObject:srr forKey:@"Name"];
[srr release],srr=nil;
[arr addObject:drr];
return;
}
if([elementName isEqualToString:@"List"])
{
[drr release];
}
[srr release],srr=nil;
}
我想輸出是:
(
{
Name="John";
Id="1";
}
)
但是我得到這樣的:
(
{
Name = John;
Id = "0";
},
{
Name = John;
Id = "0";
}
)
我該怎麼辦呢?
使用本連結[XML解析示例] [1] [1]:http://stackoverflow.com/questions/13117711/unable-to-store-and-retrieve-xml-data-從-的NSMutableArray/13119018#13119018 – NANNAV
在您的示例中列出的XML是非常奇怪。基於它看起來像有2個用戶(ID 0和ID 1)的格式,並且該用戶有0 /名爲約翰其ID也爲0的僱員,並且是類型ID 0。這是更奇怪所作的結果你想要「Name = John:Id = 1」的事實。我可以理解,在許多情況下,您不能發佈真實的XML數據,但接近真實的東西肯定會幫助我們幫助您。 – NJones
但是我正從服務URL這種反應,我必須這樣做,因爲它是..我不能改變service.Please幫助.. – Honey