2011-10-24 18 views
1

私はタグ<AboutUs>(HTMLタグを持っています)を持っていて、文字列部分をローカル文字列に格納しました。今私は表示するために私のWebViewに渡したいが、それは私の文字列(null)を表示しています。UIWebViewは解析されたXMLデータを表示しません

はここに私のコードですが、任意のヘルプは高く評価されています。あなたのviewDidLoad方法で

@class AppDelegate_iPhone; 
@interface AboutUsViewController : UIViewController<NSXMLParserDelegate> { 

    NSMutableString *aboutUsString; 
    NSString *currentElement; 

    IBOutlet UIWebView *webView; 
    AppDelegate_iPhone *appDelegate; 
} 

@property(nonatomic,retain) NSMutableString *aboutUsString; 
@property(nonatomic,retain) IBOutlet UIWebView *webView; 
-(id)init; 

@end 



@implementation AboutUsViewController 
@synthesize aboutUsString,webView; 


-(id)init{ 
    if(self == [super init]){ 
     aboutUsString = [[NSMutableString alloc]init]; 
    } 
    return self; 
} 

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 
- (void)viewDidLoad { 
    [super viewDidLoad]; 

    appDelegate = (AppDelegate_iPhone *)[[UIApplication sharedApplication] delegate]; 

    NSURL *url = [[NSURL alloc] initWithString:@"http://mobileecommerce.site247365.com/admin/AboutUs.xml"]; 
    NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:url]; 

    //Initialize the delegate. 
    AboutUsViewController *parser = [[AboutUsViewController alloc] init]; 

    //Set delegate 
    [xmlParser setDelegate:parser]; 

    //Start parsing the XML file. 
    BOOL success = [xmlParser parse]; 

    if(success) 
     NSLog(@"No Errors"); 
    else 
     NSLog(@"Error Error Error!!!"); 

    NSLog(@"After Parsing=== = = = = = = = == = = = = %@",appDelegate.TextString); 



} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    return YES; 
} 


- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 
} 

- (void)viewDidUnload { 
    [super viewDidUnload]; 
} 

- (void)parserDidStartDocument:(NSXMLParser *)parser 
{ 

} 


- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict 
{ 
    currentElement = elementName; 

    if([currentElement isEqualToString:@"AboutUs"]) { 

    } 

} 

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 
{ 
    if([currentElement isEqualToString:@"AboutUs"]) { 

     NSMutableString *outputBuilder = [[NSMutableString alloc]init] ; 

     [outputBuilder appendString:[NSString stringWithFormat:@"%@", self.aboutUsString]]; 

     [outputBuilder appendString:[NSString stringWithFormat:@"%@", string]]; 

     self.aboutUsString = outputBuilder; 

     [outputBuilder release]; 

    } 
    else 
    { 
     self.aboutUsString = string; 
    } 



} 

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName 
{ 
    if([elementName isEqualToString:@"AboutUs"]) { 

     [webView setScalesPageToFit:YES]; 
     [webView loadHTMLString:self.aboutUsString baseURL:[NSURL URLWithString:@"http://www.hitchhiker.com/message"]]; 

     NSLog(@"In DID End Element ===== %@",aboutUsString); 

     appDelegate.TextString = [[NSMutableString alloc]initWithString:aboutUsString]; 

    } 

    currentElement = @""; 
} 



- (void)parserDidEndDocument:(NSXMLParser *)parser 
{ 
    NSLog(@"In Document End ========= %@",aboutUsString); 

    NSLog(@"Appdelgate Text String %@",appDelegate.TextString); 


} 

- (void)dealloc { 
    [super dealloc]; 
    [webView release]; 
} 


@end 
+0

xmlの一部も投稿できますか? – Devarshi

+0

NSLogまたはブレークポイントを-parser:foundCharacters:に置き、何らかの値に初期化されていることを確認してください! – Devarshi

+0

<フォントサイズ=「2」顔=「Arialの」色=「白」> VidushiインフォテックアウトソースのWebデザイン、グラフィックデザイン、ウェブ開発、eコマースソリューションあなたのWeb開発をソーシングアウトの



思考へ

ようこそ世界クラスのチームが必要ですか?カスタムWeb開発、ソフトウェア開発、グラフィックデザイン、またはeコマースサービスとソリューションの検索はここで終わりません。

mAc

答えて

2

は、あなたがして、すべてのNSXMLParserデリゲートの呼び出しを取得します新しい AboutUsViewControllerを作成しています。パースされたHTMLを読み込む独自のWebビューがありますが、解析ビューコントローラが実際には見えないため、表示されません。

新しいインスタンスを作成する代わりに、selfをxmlパーサーのdelegateとして設定する必要があります。

+0

ありがとう、私はそれをしましたが、今でも私の見解は私がそれに与えるものを示していません。 – mAc

+0

実際には私がTabBarテンプレートを使っているからです....そして、その2番目のビューではwebViewを表示しようとしています....実際には表示されていますが、私のコンテンツはそうではありません。 – mAc