我已经从教程中使用xml解析器创建了一个应用程序。但是这个教程很容易。在这个xml文件是从本地xml解析的。但是如果我需要解析xml文件中的值,请说www。 xxxxx.com/xxx.xml..how我可以修改代码...指导请..
- (void) applicationDidFinishLaunching:(UIApplication *)application {
// find "sample.xml" in our bundle resources
NSString *sampleXML = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"xml"];
NSData *data = [NSData dataWithContentsOfFile:sampleXML];
// create a new SMXMLDocument with the contents of sample.xml
NSError *error;
SMXMLDocument *document = [SMXMLDocument documentWithData:data error:&error];
// check for errors
if (error) {
NSLog(@"Error while parsing the document: %@", error);
return;
}
// demonstrate -description of document/element classes
NSLog(@"Document:\n %@", document);
// Pull out the <books> node
SMXMLElement *books = [document.root childNamed:@"books"];
// Look through <books> children of type <book>
for (SMXMLElement *book in [books childrenNamed:@"book"]) {
// demonstrate common cases of extracting XML data
NSString *isbn = [book attributeNamed:@"isbn"]; // XML attribute
NSString *title = [book valueWithPath:@"title"]; // child node value
float price = [[book valueWithPath:@"price"] floatValue]; // child node value (converted)
// show off some KVC magic
NSArray *authors = [[book childNamed:@"authors"].children valueForKey:@"value"];
NSLog(@"Found a book!\n ISBN: %@ \n Title: %@ \n Price: %f \n Authors: %@", isbn, title, price, authors);
}
}
我已经尝试了很多小时的教程,最后我在我的app中使用这些代码得到了很好。但我需要从服务器导入xml文件......
答案 0 :(得分:3)
显然,我不打算编写你需要的所有代码(Server Access + XML Parser + Protocols,至少有一个不错的架构),这不是博客。所以:
NSURLConnection
,也可以使用第三方库(例如MKNetworKit)。NSData
)后,您可以使用它填充解析器。简而言之就是这样。只是一个指针:
applicationDidFinishLaunching:
内,这没有任何意义。如果您需要在applicationDidFinishLaunching:
时使用它,它完全有效,请为XML Parser创建一个合适的类。答案 1 :(得分:1)
嗯,它减少了两件事:获取XML字符串并解析它。为了获得xml,你必须简单地写下这样的东西:
NSError *error = nil;
NSString *xmlString = [NSString stringWithContentsOfURL:[NSURL urlWithString:@"www.xxxxx.com/xxx.xml"] encoding:NSUTF8StringEncoding error:&error]
之后,将此字符串提供给解析器。据我所知,TBXML是最快的,而且易于使用。你可以从here获得它。
之后,您需要遍历XML的节点,这很容易,您可以找到很多示例。 Here's一些文档。
干杯!