У меня есть простой XML-файл. Я просто хочу получить имя пользователя и пароль. Но он генерирует повторяющееся значение, когда я использовал nslog для наблюдения за результатом. структура XML-это так же, как это:Получите повторное значение при использовании NSXmlParser для анализа XML-файла
<Login xmlns="http://tempuri.org/">
<userName>Vincent</userName>
<password>string</password>
<status>OK</status>
</Login>
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
if ([elementName isEqualToString:@"userName"]) {
NSLog(@"Node is found correctly");
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
if (!userNameString) {
userNameString=[[NSMutableString alloc]init];
}
[userNameString appendString:string];
NSLog(@"%@",userNameString);
}
- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError
{
NSInteger errorCode=[parseError code];
// NSLog(@"%d,%@",errorCode,[parseError localizedDescription]);
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if ([elementName isEqualToString:@"userName"]) {
userNameString=nil;
}
}
Вот результат, который был сгенерирован NSLog:
2012-05-02 19: 47: 27,620 DeliveryManagement [4364: 11003]
Vincent
2012-05-02 19: 47: 27,620 DeliveryManagement [4364: 11003]
2012-05-02 19: 47: 27,621 DeliveryManagement [4364: 11003] строка-05-02 19: 47: 27,622 DeliveryManagement [4364: 11003] Строка
2012-05-02 19: 47: 27,623 DeliveryManagement [4364: 11003] строка ОК 2012-05-02 19 : 47: 27,623 DeliveryManagement [4364: 11003] строка ОК
2012-05-02 19: 47: 27,624 DeliveryManagement [4364: 11003] строка ОК
2012-05-02 19:47 : 27.625 Управление доставкой [4364: 11003] ул. кольцо ОК
2012-05-02 19: 47: 27,626 DeliveryManagement [4364: 11003] строка ОК
2012-05-02 19: 47: 27,626 DeliveryManagement [4364: 11003] строка OK
2012-05-02 19: 47: 27,627 DeliveryManagement [4364: 11003] строка OK
2012-05-02 19: 47: 27,628 DeliveryManagement [4364: 11003] Узел найден правильно 2012-05-02 19: 47: 27,642 DeliveryManagement [4364: 11003] строка OK
Вам нужно будет показать код, в котором вы разбираете документ XML, прежде чем кто-нибудь сможет вам помочь. – jonkroll
Извините, я вставил кодировку для синтаксического анализа XML. –