Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 从XML NSString中提取值,避免使用解析器_Iphone_Objective C_Ipad - Fatal编程技术网

Iphone 从XML NSString中提取值,避免使用解析器

Iphone 从XML NSString中提取值,避免使用解析器,iphone,objective-c,ipad,Iphone,Objective C,Ipad,我有这个字符串: <?xml version="1.0" encoding="utf-8"?> <NewDataSet> <Table> <CITY>Jupiter</CITY> <STATE>FL</STATE> <ZIP>33477</ZIP> <AREA_CODE>561</AREA_CODE> <TIME_Z

我有这个字符串:

<?xml version="1.0" encoding="utf-8"?>
<NewDataSet>
  <Table>
    <CITY>Jupiter</CITY>
    <STATE>FL</STATE>
    <ZIP>33477</ZIP>
    <AREA_CODE>561</AREA_CODE>
    <TIME_ZONE>E</TIME_ZONE>
  </Table>
</NewDataSet>

木星
佛罗里达州
33477
561
E
我只想从中夺取这座城市,在这种情况下:木星


我不想使用XML解析器-有没有一种简单的方法可以做到这一点?

我建议您研究使用XML解析器,但您还是要这样做:

NSArray *array = [yourXMLString componentsSeparatedByString:@"CITY"];
NSString *city = [[array objectAtIndex:1] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"></"]];
NSArray*array=[yourXMLString组件由字符串分隔:@“CITY”];

NSString*city=[[array objectAtIndex:1]stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@“>我建议使用xml解析器进行研究,但还是来看看:

NSArray *array = [yourXMLString componentsSeparatedByString:@"CITY"];
NSString *city = [[array objectAtIndex:1] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"></"]];
NSArray*array=[yourXMLString组件由字符串分隔:@“CITY”];
NSString*city=[[array ObjectatinIndex:1]stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@“>
NSString*str=[[NSString alloc]initWithContentsOfFile:文件名编码:NSUTF8StringEncoding错误:nil];
NSLog(@“%@”,str);
NSRange range 1=[str rangeOfString:@”“;
NSRange range 2=[str rangeOfString:@”“;
NSU整数位置=范围1.位置+范围1.长度;
NSU整数长度=range2.location-range1.location-range1.length;
NSString*substr=[str substringWithRange:NSMakeRange(位置、长度)];
NSLog(@“%@”,substr);
NSString*str=[[NSString alloc]initwithcontentsoff文件:文件名编码:NSUTF8StringEncoding错误:nil];
NSLog(@“%@”,str);
NSRange range 1=[str rangeOfString:@”“;
NSRange range 2=[str rangeOfString:@”“;
NSU整数位置=范围1.位置+范围1.长度;
NSU整数长度=range2.location-range1.location-range1.length;
NSString*substr=[str substringWithRange:NSMakeRange(位置、长度)];
NSLog(@“%@”,substr);

如果你想从XML中提取一个值,那么你确实需要使用XML解析器——这是一种简单的方法。一个合适的解析器会为你处理各种各样的复杂性(例如,
Köln
Kö;ln
在XML中是完全相同的值),为什么要重新发明轮子。似乎需要大量额外的代码、复杂性,甚至可能需要一个额外的解析器库来从字符串中提取一个值,就像下面的答案一样。我想,如果您自己生成的是XML,并且您知道确切的格式,并且知道它永远不会使用字符引用,那么您可以不进行字符串操作nces、DTD、CDATA节等。但是正确解析XML。感谢这个链接,目前这是我唯一需要担心的XML,但我相信这篇文章将来会对我有所帮助。如果你想从XML中提取值,那么你确实想使用XML解析器——这是一种简单的方法。道具有各种各样的复杂性er解析器将为您处理(例如,
Köln
Kö;ln
在XML中是完全相同的值),为什么要重新发明轮子。似乎需要大量额外的代码、复杂性,甚至可能需要一个额外的解析器库来从字符串中提取一个值,就像下面的答案一样。我想,如果您自己生成的是XML,并且您知道确切的格式,并且知道它永远不会使用字符引用,那么您可以不进行字符串操作nces、DTD、CDATA节等,但正确解析XML。感谢您的链接,目前这是我唯一需要担心的XML,但我相信这篇文章在将来会对我有所帮助。