0

URLからタイトルを取得するメソッドがあります。

それは機能しますが、1つのWebサイトでは一致の結果がありません。

どこに問題があるのか​​ わかりますか?

ウェブページのタイトルは Test - sds です

NSURL *url_s = [NSURL URLWithString:url];
            NSData* data = [NSData dataWithContentsOfURL:url_s];

            if(data!=nil){
                NSString* newStr = [NSString stringWithUTF8String:[data bytes]];
                NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"<title>(.*)</title>" options:0 error:NULL];

                NSTextCheckingResult *match = [regex firstMatchInString:newStr options:0 range:NSMakeRange(0, [newStr length])];

                NSString *title = [newStr substringWithRange:[match rangeAtIndex:1]];
}
4

2 に答える 2

1

正規表現を使用して HTML または XML からコンテンツを安全に派生させることはできません。XML と HTML はステートフルであるため、実際にはそのように解析する必要があります。たとえば、正規表現を使用すると、以下から間違った結果が返されます。

<html>
<head>
    <!--<title>Old Title</title>-->
    <title>New Title</title>
</head>
</html>

HTML パーサーを選択して使用する必要があります。以前にアプリでHppleを使用したことがあります。

于 2013-10-18T14:37:16.517 に答える