Objective c 使用NSXML解析器进行解析
我试图从Cocoa中的xml解析以下信息Objective c 使用NSXML解析器进行解析,objective-c,xml,cocoa,nsxmlparser,Objective C,Xml,Cocoa,Nsxmlparser,我试图从Cocoa中的xml解析以下信息 <level> <entity> <name>red</name> <id>0</id> <body>false</body> <x>0.0</x> <y>0.0</y> <rotation>0.0</rotation> </e
<level>
<entity>
<name>red</name>
<id>0</id>
<body>false</body>
<x>0.0</x>
<y>0.0</y>
<rotation>0.0</rotation>
</entity>
在我的find character方法中,它记录语句,但唯一返回的是“Name found:”,其余为空
我这样做是否正确,以便在xml中获得以下标记?我想提取每个标签
例如:
NSString* name = THE_NAME;
int x = [THE_X_VALUE, intValue];
等等
有人能帮我吗?NSXMLParser是其中一个在纸面上听起来不错的类,但当你真正开始使用它时,它会让你发疯。如果您真的想继续走这条没有乐趣的道路,请实现parser:didStartElement:然后祈祷parser:foundCharacters:交付货物。 根据我的经验,NSXMLParser就像一个蹒跚学步的大孩子,他打碎了拼图,然后一块一块地递给你。一开始这似乎是一个很棒的例子:“哦,看,我有一块!还有一块!还有一块!”但很快你就会感到困惑:“哦,看,我有5.0!现在,这是旋转还是y坐标?”谁知道呢?当然不是NSXMLParser 至于最后一行代码:要提取字符串的数值,NSDecimalNumber非常方便
if([currentElement isEqualToString:@"x"]){
NSDecimalNumber *dec = [NSDecimalNumber numberWithString:string];
CGFloat x = dec.floatValue;
}
“返回的唯一内容是”找到的字符:“”-您的意思是NSLog只打印“找到的名称:”吗?抱歉。对它只打印“Name Found:”您知道该方法可能不包含所有字符,并且可能会被多次调用,因此您确实希望将这些字符累积到
NSMutableString
?您能告诉我您的确切意思吗?@userXXX此方法没有多次调用吗?如果有,它们是否真的只记录一个空字符串?
if([currentElement isEqualToString:@"x"]){
NSDecimalNumber *dec = [NSDecimalNumber numberWithString:string];
CGFloat x = dec.floatValue;
}