Objective c 使用NSXML解析器进行解析

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

我试图从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>
  </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;
}