怎么使标签加载内容位于网站上?

本教程将介绍如何使标签加载内容位于网站上?的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

怎么使标签加载内容位于网站上? 教程 第1张

问题描述

我想制作一个标签,表明乐队是否正在巡演(系统的向下 fyi)

所以我希望界面中的标签可以调整为我的服务器上给定的值.(因此它需要从(.html)文件中提取数据并将其显示为标签.)

在我看来,WebView 很乱,标签看起来更好.

推荐答案

我推荐使用 AFNetworking - http://afnetworking.com/.它将允许您从服务器中提取数据.

例如,您可以创建一个包含所需数据的 XML 文件.然后你可以使用 NSXMLParser 解析它并对数据做任何你需要的事情.

NSURL *feedURL = [[NSURL alloc] initWithString:@"http://yourserver.com/yourxmlfile.xml"];
NSURLRequest *feedRequest = [[NSURLRequest alloc] initWithURL:feedURL];
AFXMLRequestOperation *feedOperation = [AFXMLRequestOperation XMLParserRequestOperationWithRequest:feedRequest success:^(NSURLRequest *request, NSHTTPURLResponse *response, NSXMLParser *XMLParser) {
 NSLog(@"XMLRequest successful - starting parser..");
 [XMLParser setDelegate:self];
 [XMLParser parse];
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, NSXMLParser *XMLParser) {
 UIAlertView *connectionError = [[UIAlertView alloc] initWithTitle:@"Connection Error" message:error.localizedDescription delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil, nil];
 [connectionError show];
}];

XML 示例:

这是请问上传到服务器的文件.我在 AFXMLRequestOperation 中使用标题 yourxmlfile.xml,但你可以随意调用它.

<?xml version="1.0"?>
<band>
 <bandname>The Band</bandname>
 <bandontour>1</bandontour>
</band>

使用 NSXMLParser(委托)

创建一个 ivar(在您的 .h 中)以在解析数据时保存数据.

@property (nonatomic, retain) NSString *currentProperty;

这将暂时保存元素数据,然后您需要在解析器到达 didEndElement 时对其进行处理.

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict { 
 if ([elementName isEqualToString:@"bandontour"]) {
  // found the <bandontour> tag
 } 
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
 self.currentProperty = string;
}

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
 if ([elementName isEqualToString:@"bandontour"]) {
  // finished getting the data in <bandontour>

  // do something now that you've got your data retrieved
  if (self.currentProperty) int bandOnTour = self.currentProperty.intValue;
  if (bandOnTour == 1) self.yourLabel.text = @"Band is on tour!";
  else self.yourLabel.text = @"Not on tour.";
 }}

参见 NSXMLParser 类参考了解更多信息.

好了关于怎么使标签加载内容位于网站上?的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。