私はウェブサイトの応答から得られるhtml文字列を持っています。私がそこでやっていることはすごくうまくいって、何の問題もありません。私が必要とするのは、href
のhtml内の属性だけです。この属性に含まれるこのURLを取得するための最良の方法は何ですか。それが必要な場合は、私は外部ライブラリに公開しています。私は、最も効率的な方法を可能にしたいだけです。ありがとう。文字列iPhoneからのHTML属性の抽出
答えて
このAPIを使用して、HTMLコードを解析し、必要な要素を選択します。
ElementParserは、xmlおよびhtmlコンテンツへの簡単なアクセスを提供する軽量フレームワークです。 HTMLとXMLの仕様の複雑さを失うのではなく、本質的な単純さをあいまいにしないことを目指しています。それはすべてをするわけではなく、「十分に」行うことを志向しています。
出典:http://touchtank.wordpress.com/element-parser/
ここでは、あなた自身の例でElementParser
を使用する方法の例です。これが参考になることを願っています。
メリークリスマス!ホー・ホー・ホー
// Here you create the parser, don't forget to #import "Element.h" and #import "ElementParser.h"
ElementParser * parser = [[ElementParser alloc] init];
// This is the HTML source code that you want to parse
DocumentRoot* document = [parser parseHTML:@"<html><a href=\"http://google.com\">Google Link</a></html>"];
// Create an array where you will put all the <a></a> elements
NSArray* elements = [document selectElements: @"a"];
// Iterate though the array, for each element pick the "href" attribute
NSMutableArray* results = [NSMutableArray array];
for (Element* element in elements){
NSString* snipet = [element attribute:@"href"];
// Add the result for each element to the "results" array
[results addObject: snipet];
}
// Print the results on the screen
NSLog(@"%@",[results componentsJoinedByString: @"\n"]);
あなたは、htmlタグのURLを抽出するためのNSRegularExpresionを使用することができます。
NSString *regexStr = @"http?://([-\\w\\.]+)+(:\\d+)?(/([\\w/_\\.]*(\\?\\S+)?)?)?";
NSString * url = @"<a href=\"http://www.stackoverflow.org/\">stackoverflow</a>";
NSError *error;
NSRegularExpression *testRegex = [NSRegularExpression regularExpressionWithPattern:regexStr options:0 error:&error];
if(testRegex == nil) NSLog(@"Error making regex: %@", error);
NSRange range = [testRegex rangeOfFirstMatchInString:url options:0 range:NSMakeRange(0, [url length])];
NSString * href = [url substringWithRange:range];
ベアNSRegularExpressionは、IOS 4または5
-1 HTMLを正規表現で解析することはできません。 http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags – Steve
答えを見てみると、HTMLを解析していないので、関数懸念、それはちょうどramdomの文字列からのURLに一致しています... – Ecarrion
私は何を言っています。類似したURLを含む文書の本文のテキストが一致します。タグからのテキストと同様に、OPは興味がありません。正規表現を使用してこれらのすべての可能性と戦い続けようとすると、非常に複雑でメンテナンスが難しいだけでなくあなたがしたいことが正規表現ではできない位置にいるかもしれません。 – Steve
- 1. img src属性から文字列を抽出しますか?
- 2. 文字列配列からname属性を抽出する方法は?
- 3. F#.Data HTMLパーサーノードからの文字列の抽出
- 4. htmlタグ属性の抽出方法は?
- 5. データフレームからの文字列の抽出
- 6. html文字列からの抽出番号
- 7. のpython - タグを抽出し、HTMLから属性 - ハードな方法
- 8. htmlウェブページのlabel要素から "for"属性を抽出する
- 9. 抽出複数行の属性値HTMLファイルから
- 10. htmlテーブルの各行から属性を抽出します
- 11. 文字列からの抽出 - Ruby
- 12. JSON文字列オラクルからの抽出
- 13. 文字列からの抽出
- 14. 文字列からのPHPテキスト抽出
- 15. htmlから属性文字列値を取得
- 16. Objective-Cの文字列から文字列を抽出する
- 17. Bashの文字列から文字列を抽出する
- 18. HTMLファイルから文字列を抽出する
- 19. htmlからクエリ文字列を含むURLを抽出する
- 20. 文字列からHTMLタグを抽出する
- 21. 文字列からHTMLタグを抽出する
- 22. html文字列からデータを抽出するライブラリ
- 23. rのリスト列からモデルの属性を抽出します
- 24. Php | html文字列を指定すると、src属性をどのように抽出できますか?
- 25. 文字列からの文字の抽出
- 26. 文字列からの整数と文字の抽出
- 27. クエリ文字列からURLを抽出
- 28. JSONオブジェクトから文字列を抽出
- 29. シェル:ソースコードから文字列を抽出
- 30. Excelの文字列から文字を抽出する方法
を必要と心の中で私は実際に今の私のプロジェクトにそのフレームワークを持っています!私はそれをまったく使用する方法を見つけることができません!そこにはドキュメンテーションはありません、それを使用する方法についての短い段落です。それはまったく詳細には行きません。誰もElementParserの使い方を理解していますか?もしそうなら、それを使ってこの 'href'属性をどのように抽出できるか私に教えてください。ありがとう。 – Eli
私はそれを自分自身に試して、もっと詳しく説明します。 – Dimme
あなたの素晴らしい。ありがとうございました! – Eli