我遇到的情况是我得到了一个非常简单的XML主体,但是我想把它解析成一个字符串而不会意外地存储它。由于这是一个如此简单的案例,我想知道解析这个问题的最佳方法是什么?
<user>
<password> holla </password>
</user>
谢谢你的时间!
答案 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的教程。这个解析器非常快速且易于使用。
希望它有所帮助。