2014-12-05 4 views
1

Я хотел бы проанализировать xml в соответствии с их атрибутами и сохранить как словарь.разбор XML по атрибутам с помощью NSXMLParser

выход

XML-Похоже, что

<Tracking event="firstElement"> 
http://www.firstElement.com 
</Tracking> 

Что я делаю сейчас является:

Получение имя тега, который отслеживания и сохранения URL. Но в финале, какой метод связанного URL-адреса неизвестен.

Я должен быть сохранить его на NSDictionary и называть его так:

[словарь objectForKey: @ "firstElement"];

-> (NSURL *) http://www.firstElement.com

Как я могу быть достичь? С наилучшими пожеланиями ..

ответ

2

Вы можете получить событие в NSXMLParserDelegate:

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict 
{ 
    // reset temp data 
    [self.mutableData setString:@""]; 

    if([elementName isEqualToString:@"Tracking"]) { 
     NSString *event = [attributeDict objectForKey:@"event"]; 
    } 
} 

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 
{ 
    [self.mutableData appendString:string]; 
} 

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName 
{ 
    if([elementName isEqualToString:@"Tracking"]) { 
     NSString *URL = [NSString stringWithFormat:@"%@", self.mutableData]; 
    } 
} 

синтаксического анализа, чтобы получить URL и установить словарь с @{event:URL}

mutableData является собственностью MutableString

@property (nonatomic) NSMutableString *mutableData; 

Надежда эта помощь вы :)

+0

Итак, когда я установил e вентиляция. Как я могу достичь URL? –

+0

На самом деле не получите часть события NSString *. Где мы будем его использовать? –

+0

Код показывает только, как получить нужные значения. В вашем случае вам просто нужно сохранить событие в ivar и добавить запись в свой словарь, когда вы получите URL-адрес. – Imotep

Смежные вопросы