2012-04-20 2 views
0

У меня есть сайт (например apple.com), которые содержат ссылки тег, напримерHTML разбора: как получить ссылку тег с удаленного сайта

<link rel="alternate" type="application/rss+xml" title="RSS" href="http://images.apple.com/main/rss/hotnews/hotnews.rss" /> 

Так как я могу получить титул «RSS» и HREF от него ?

Update 1: Я попытался преобразовать сайт в строку, используя

NSData *data = [NSURLConnection sendSynchronousRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://apple.com/"]] returningResponse:NULL error:NULL]; 
NSString *HTMLWithFeeds = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 

Но я не знаю, что теперь делать ...

Update 2:

Непонятно из моего сообщения, но кроме того, на этом сайте следует найти ссылку с типом = "application/rss + xml"

+0

Это строка? Вы уже используете парсер XML? Больше информации, пожалуйста. – jtbandes

+0

посмотреть мое обновление – user1248568

ответ

1

вы можете попробовать использовать регулярные выражения

NSError *error = NULL; 
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"<link.*?href="(.*?)".*?>" 
                      options:NSRegularExpressionCaseInsensitive 
                      error:&error]; 

NSArray *matches = [regex matchesInString:string 
            options:0 
            range:NSMakeRange(0, [string length])]; 
for (NSTextCheckingResult *match in matches) { 
    NSRange matchRange = [match range]; 
    NSRange firstHalfRange = [match rangeAtIndex:1]; 
    NSRange secondHalfRange = [match rangeAtIndex:2]; 
} 

Яблоки документации имеет несколько примеров о том, как в дальнейшем использовать и доступ матчей:

https://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSRegularExpression_Class/Reference/Reference.html

например что-то вроде следующих регулярных выражений должны сделать для hrefs:

<link.*?href="(.*?)".*?> 
0

если вы используете jquery, $ ("link"). Attr ("title") -> print "RSS" $ ("ссылка"). Attr ("href") -> print http:// *

Если вы хотите получить контент href, используя jquery ajax. $ .get ("http: // *", function (result) {});

+0

выглядит как php-код ... – user1248568

0

Создать NSXMLDocument используя -initWithContentsOfURL:options:error: с опцией NSXMLDocumentTidyHTML. Затем вы можете перемещаться по иерархии узлов, начиная с -rootElement. Или вы можете использовать XPath, например [doc nodesForXPath:@"//[email protected]"].

Смежные вопросы