我在這種情況下,我得到了一個非常簡單的XML主體返回,但我想解析它的字符串,而不會意外地存儲在任何地方。由於這是一個簡單的例子,我想知道什麼是解析這個問題的最好方法?XML解析密碼,無需存儲/緩存在分區
<user>
<password> holla </password>
</user>
謝謝你的時間!
我在這種情況下,我得到了一個非常簡單的XML主體返回,但我想解析它的字符串,而不會意外地存儲在任何地方。由於這是一個簡單的例子,我想知道什麼是解析這個問題的最好方法?XML解析密碼,無需存儲/緩存在分區
<user>
<password> holla </password>
</user>
謝謝你的時間!
您需要有一個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];
}
也許設置一個簡單的NSXMLParser
可以很簡單。
但是,如果您需要在整個應用程序中解析XML,我建議您閱讀有關GDataXML的內容。這裏有一個關於how-to-read-and-write-xml-documents-with-gdataxml的教程。這個解析器非常快速且易於使用。
希望它有幫助。
是的,我在看以前使用這個,只需要一些肯定。這是解析單個屬性的有效方法嗎? – Pharaon 2012-02-22 22:57:39
這對我很有用。 – 2012-02-22 23:05:19