XML解析密码,无需在db中存储/缓存

时间:2012-02-22 22:31:32

标签: ios xml xml-parsing

我遇到的情况是我得到了一个非常简单的XML主体,但是我想把它解析成一个字符串而不会意外地存储它。由于这是一个如此简单的案例,我想知道解析这个问题的最佳方法是什么?

<user>
     <password> holla </password>
</user>

谢谢你的时间!

2 个答案:

答案 0 :(得分:1)

您需要拥有NSURLConnection对象和NSXMLParser对象。我相信你已经知道了。

假设你在某处有一个NSString * tempString。

对于NSXMLParser,以下是您必须实现的方法:

// When the start of an element is found
- (void) parser:(NSXMLParser *)parser 
didStartElement:(NSString *)elementName 
   namespaceURI:(NSString *)namespaceURI 
  qualifiedName:(NSString *)qName 
     attributes:(NSDictionary *)attributeDict
{
    if([elementName isEqualToString:@"password"])
    {
        // initialize your string
        tempString = [NSString alloc] init];
    }
}

// When the text in an element is found
- (void) parser:(NSXMLParser *) parser 
foundCharacters:(NSString *)string
{
    // use the value of the string(password) to initialize your string
    tempString = string;
}

// When the end of element is found
- (void) parser:(NSXMLParser *) parser 
  didEndElement:(NSString *)elementName 
   namespaceURI:(NSString *)namespaceURI 
  qualifiedName:(NSString *)qName
{ 
    // whatever work left to do with the xml parsing
    // use know you get the password string, so do whatever you want after that
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Got the password!"
                                                    message:@"" 
                                                   delegate:nil 
                                          cancelButtonTitle:@"OK" 
                                          otherButtonTitles:nil];
    [alert show];
    [alert release];
}

答案 1 :(得分:0)

设置一个简单的NSXMLParser可能非常简单。

但是,如果您需要在整个应用程序中解析XML,我建议您阅读有关GDataXML的内容。这是how-to-read-and-write-xml-documents-with-gdataxml的教程。这个解析器非常快速且易于使用。

希望它有所帮助。