2010-11-29 10 views
0

こんにちは私はNSXMLParserを使用してXML文書をループしていて、説明タグに問題があります。NSXMLParser RSSの奇妙な文字の問題

一部のニュースサイトでは、タグ内に奇妙な文字(HTMLタグ、<、>など)があり、解析が期待通りに行われません。誰か助けてもらえますか?

ありがとうございます。

+0

コードを入力してください。 – squeezemylime

答えて

0

エンティティ参照は、それらが表す文字に変換する必要があります。どのHTMLタグも取り除かれるか、UIWebViewに渡される必要があります。そして、あなたは、単に文字列操作によって、他の不要な文字を置き換えることができます

- (NSString *)flattenHTML:(NSString *)html { 

    NSScanner *theScanner; 
    NSString *text = nil; 
    theScanner = [NSScanner scannerWithString:html]; 

    while ([theScanner isAtEnd] == NO) { 

     [theScanner scanUpToString:@"<" intoString:NULL] ; 

     [theScanner scanUpToString:@">" intoString:&text] ; 

     html = [html stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"%@>", text] withString:@""]; 
    } 
    // 
    html = [html stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 

    return html; 
} 

:あなたがこれを行うために必要なHTMLタグをスキップする

+0

文字は、パーサーによって '<''>'文字で識別されます。どのようにxmlparserにフィードする前にそれを解析する任意のアイデア? – likki

+0

したがって、角括弧は一重引用符で囲まれていますか?その場合、パーサーに送信する前に、常に '<'のすべてのインスタンスを< and '> '>に置き換えることができます。 – jessecurry

0

これが役に立ちます。

おかげで、

Madhup

+0

ご回答いただきありがとうございます。奇妙な文字はdescriptionタグの中にあります(テキスト+奇妙な文字)。この場合、見つけたテキストをメソッドに渡すにはどうすればいいですか?問題は、奇妙な文字がXMLParserによって '>' '<'文字として識別され、パーサがdescriptionタグの内部にある場合、タグebenの終わりを仮定していることがあるということです。 – likki

+0

@likkiあなたが解析しようとしているサンプルの応答と、あなたが問題に直面している部分を表示してください。 –

+0

市場は毎年ヨーロッパの問題国をPIIGSと呼んでいます。しかし、おそらくそれが問題になるはずです。 < img src = "http://feeds.feedburner.com/~r/rss/money_topstories/~4/mgzttHYMi9s" height = "1" width = "1"/> likki