2012-02-22 44 views
0

我在這種情況下,我得到了一個非常簡單的XML主體返回,但我想解析它的字符串,而不會意外地存儲在任何地方。由於這是一個簡單的例子,我想知道什麼是解析這個問題的最好方法?XML解析密碼,無需存儲/緩存在分區

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

謝謝你的時間!

回答

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]; 
} 
+0

是的,我在看以前使用這個,只需要一些肯定。這是解析單個屬性的有效方法嗎? – Pharaon 2012-02-22 22:57:39

+0

這對我很有用。 – 2012-02-22 23:05:19

0

也許設置一個簡單的NSXMLParser可以很簡單。

但是,如果您需要在整個應用程序中解析XML,我建議您閱讀有關GDataXML的內容。這裏有一個關於how-to-read-and-write-xml-documents-with-gdataxml的教程。這個解析器非常快速且易於使用。

希望它有幫助。