我正在使用名为 SMXMLDocument
的 xmlparser。 https://github.com/nfarina/xmldocument
我使用 NSURLConnection
和 NSURL
来获取 XML
,效果很好。我可以将其记录在控制台中。
现在是时候获取字符串中的元素了,我使用了这段代码。
- (void)connectionDidFinishLoading:(NSURLConnection *)conn
{
NSString *fetchedXML = [[[NSString alloc] initWithData:xmlData encoding:NSUTF8StringEncoding] autorelease];
NSLog(@"%@", fetchedXML);
[xmlData release];
xmlData = nil;
[connection release];
connection = nil;
[self performSelector:@selector(parseXML)];
}
-(void)parseXML
{
SMXMLDocument *document = [SMXMLDocument documentWithData:xmlData error:nil];
SMXMLElement *content = [document.root childNamed:@"content"];
for (SMXMLElement *name in [content childrenNamed:@"name"])
{
NSString *name = [name valueWithPath:@"name"];
NSLog(@"name:%@", name);
}
}
这显然不起作用,我没有得到带有 name 元素的日志。我的 xml 代码非常简单,如下所示:
<?xml version="1.0" encoding="UTF-8" ?>
<content>
<name>John Doe</name>
</content>
任何人都可以帮我解释为什么这不起作用。 提前致谢! :D
最佳答案
代替
SMXMLElement *content = [document.root childNamed:@"content"];
尝试
SMXMLElement *content = document.root;
因为“content”元素是文档的根:)
关于iOS - 无法让 SMS XMLDocument 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8523942/