如何在没有Parsing的情况下在XML中提取XML中的特定字符串?

时间:2011-02-14 17:16:26

标签: iphone nsstring

我已经使用NSURLConnection接收了数据,我得到了以下字符串,这是字符串的XML格式。现在我想取字符串的状态节点。我想在不使用XML解析的情况下获取该字符串。

 -(void)connectionDidFinishLoading:(NSURLConnection *)connection{

     NSString *urlDataString = [[NSString alloc] initWithData:self.recieveData encoding:NSUTF8StringEncoding];

返回字符串:

    <?xml version="1.0" encoding="Utf-8"?><blacksheep><status>Success</status></blacksheep>

输出:

  Succeess

PLease帮助我。

感谢。

1 个答案:

答案 0 :(得分:3)

NSString* str = @"<?xml version=\"1.0\" encoding=\"Utf-8\"?><blacksheep><status>Success</status></blacksheep>";
NSString* status = [[[[str componentsSeparatedByString: @"<status>"] objectAtIndex: 1] componentsSeparatedByString: @"</status>"] objectAtIndex: 0];

但要小心:这是一个简短但不是很安全的方法。所以你最好添加一些额外的支票。

编辑:更好的方法是

NSString* status = @"Failed";
NSArray* arr = [str componentsSeparatedByString: @"<status>"];
if( [arr count] > 1 ) {
      status = [[[arr objectAtIndex: 1] componentsSeparatedByString: @"</status>"] objectAtIndex: 0];
}