0

私のアプリでは、いくつかの Web ページの URL があり、html タグを識別して、その URL (その html ページ) から特定の部分/部分のみを取得したいと考えています。

たとえば、<div id="content"> to </div>html ソース コードに従って部分を取得したいとします。別のファイルに保存できるようにします。

たとえば、私の URL は http://www.makepartsfast.com/2012/09/4337/more-3d-printing-in-metals-ex-one-introduces-the-m-flex-3d-printing-system/です。 1 つの html ページを開きます。そのページの一部だけが必要です。

どうすればできますか?

ありがとう..

4

4 に答える 4

1

これがCocoa + NSStringソリューション(動作+テスト済み)です。このようなカスタム パーサーを使用するときの唯一の本当の秘訣は、"終点" を見つける方法であることがわかります。実際、他の div が途中で開かれているため、単に "" まで進むことはできません。そのため、パーサーは探しているものが終わる前に停止します。はるかに複雑な XML パーサーを使用して、これを行う方法が他にないとは決して言いません。しかし、Web ページの解析はそれほど簡単ではなく、そのコードは常に完璧であるとは限りません...そして、これは単純で機能します (それでも、非同期ではない stringWithContentsOfURL: 以外の URL コンテンツを取得する方法を検討する必要があります):

NSString *originalString = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.makepartsfast.com/2012/09/4337/more-3d-printing-in-metals-ex-one-introduces-the-m-flex-3d-printing-system/"] encoding:NSUTF8StringEncoding error:nil];

NSScanner *scanner = [NSScanner scannerWithString:originalString];
NSString *extractedString = nil;

[scanner scanUpToString:@"<div id=\"content\">" intoString:nil];
[scanner scanString:@"<div id=\"content\">" intoString:nil];

[scanner scanUpToString:@"<div style=\"clear:both;\">" intoString:&extractedString];

if (extractedString) 
{
    // string was extracted
    NSLog(@"%@", extractedString);
}
于 2012-11-21T09:05:49.400 に答える
0

RaywenderlichのチュートリアルHow to Parse HTML on iOSを確認してください。

http://www.raywenderlich.com/14172/how-to-parse-html-on-ios

于 2012-11-21T07:41:37.330 に答える
0

オープン ソース ライブラリ GDataXMLNode を使用できます。xml ファイルを操作できます。を見てみましょう

http://www.raywenderlich.com/725/how-to-read-and-write-xml-documents-with-gdataxml http://code.google.com/p/gdata-objectivec-client/source/browse /trunk/Source/XMLSupport/?r=129

于 2012-11-21T07:42:54.850 に答える
0

あなたの最善の策は、「コンテンツ」に等しい属性NSXMLParserを持つタグを検索するために使用することです。適切な終了タグまでのすべての中間コンテンツをキャプチャします。Apple のチュートリアルを参照してください。divid</div>

于 2012-11-21T07:45:08.300 に答える