0

URLからxmlファイルを解析していますが、コンテンツが正しく表示されます.ここに私のxmlファイルがあります

<gold>
<price>
<title>22 K Gold - SGD $69.50</title>
</price>
<price>
<title>24 K Gold - SGD $62.50</title>
</price>
</gold>

下の画像のように、セル内の各コンテンツが表示されるようになりました

画像

ここで、セルに 22kgold を表示し、セルに SGD $69.50 を表示する必要があります。また、次の要素も同じです。また、これらの値を 2 つのラベルに出力する必要があります。

これが.mファイルの私のコードです

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSMutableArray *tableArray = [[NSMutableArray alloc]init];

    NSData *xmlData = [[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:@"http://www.p41tech.com/img/application/android/server/kamala/goldprice.xml"]];
    tbxml = [[TBXML alloc]initWithXMLData:xmlData];


    TBXMLElement * root = tbxml.rootXMLElement;

    if (root)
    {
        TBXMLElement * elem_PLANT = [TBXML childElementNamed:@"price" parentElement:root];

        while (elem_PLANT !=nil)
        {
            TBXMLElement * elem_BOTANICAL = [TBXML childElementNamed:@"title" parentElement:elem_PLANT];
            NSString *botanicalName = [TBXML textForElement:elem_BOTANICAL];
            [tableArray addObject:botanicalName];
            elem_PLANT = [TBXML nextSiblingNamed:@"price" searchFromElement:elem_PLANT];
        }      
    }

    label1.text=@"%@",botanicalName;
    label2.text=@"%@",elem_PLANT;
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return [tableArray count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    cell.backgroundView = [ [[UIImageView alloc] initWithImage:[ [UIImage imageNamed:@"download.png"] stretchableImageWithLeftCapWidth:0.0 topCapHeight:5.0] ]autorelease];   
    cell.textLabel.backgroundColor=[UIColor clearColor];
    cell.textLabel.text = [tableArray objectAtIndex:indexPath.row];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;


    tableView.backgroundColor=[UIColor clearColor];
    return cell;
}

ラベルの内容が表示されず、各セルの文字列を「-」で区切る必要があります。ガイドしてください..

前もって感謝します

4

1 に答える 1

1

あなたはおそらく次のことを意味していました:

label1.text = [NSString stringWithFormat:@"%@", botanicalName];
label2.text = [NSString stringWithFormat:@"%@", elem_PLANT];

そうしないと、文字列 "%@" をラベルに割り当て、 and を無視しbotanicalNameていelem_PLANTました。

行を 2 つの部分に分けるには、tableView:cellForRowAtIndexPath:メソッド内で次を使用できます。

NSArray *parts = [[tableArray objectAtIndex:indexPath.row] componentsSeparatedByString:@" - "];
NSString *item = [parts objectAtIndex:0];
NSString *price = [parts objectAtIndex:1];

その後、次のいずれかを実行できます。

  1. UITableViewCellStyleSubtitleUITableViewCellStyleValue1、またはUITableViewCellStyleValue1セル スタイルのいずれかを使用し、itemおよびprice変数をcell.textLabel.textおよびcell.detailTextLabel.textプロパティに割り当てます。

  2. カスタム セル ビューを追加して、そのビュー内の独自のラベルに割り当てることができます。

于 2012-07-18T08:36:36.837 に答える