我有一个html字符串,我从网站的响应中获得。我在那里做的所有事情都很棒,我没有任何困难。我需要去的仅仅是在之内的href
属性。获取该属性中包含的此URL的最佳方法是什么?如果有必要,我可以向任何外部图书馆开放,我只想要最有效的方式。谢谢。从字符串中提取HTML属性iPhone
回答
使用此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"]);
你可以使用NSRegularExpresion用于提取HTML代码的网址。
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 2011-12-24 08:04:27
如果你看看答案我不解析HTML,只要功能关注,它只是匹配一个ramdom字符串的url ... – Ecarrion 2011-12-24 14:12:17
哪些支持什么我说。恰好包含相似URL的文档正文中的文本将匹配。正如来自标签的文本OP不感兴趣,等等等等。如果你继续尝试使用正则表达式来处理所有这些可能性,你会发现它不仅变得非常复杂而且难以维护,但是你也可能发现自己处于一个你想做的事情不能用正则表达式完成的位置。 – Steve 2011-12-24 15:48:05
- 1. 从字符串属性提取在MySQL
- 2. 提取字符串的属性
- 3. Excel VBA:从字符串中提取图像源属性作为字符串
- 4. 如何从PHP中的html字符串获取属性
- 5. 需要从json字符串中提取属性和值(S)
- 6. 任何正则表达式从字符串中提取属性?
- 7. 如何从字符串数组中提取名称属性?
- 8. 从字符串中提取
- 9. 从文本字符串获取属性
- 10. 使用jquery从html中提取属性
- 11. 使用lxml从html中提取属性
- 12. 从字符串中提取字符
- 13. Javascript:如何通过Regexp从属性提取字符串
- 14. 如何从Java属性提取字符串
- 15. 在jsoup中获取html字符串中的所有属性
- 16. 从字符串中提取子串
- 17. 从字符串中提取数字
- 18. 从字符串中提取数字
- 19. Oracle:从字符串中提取数字
- 20. 从字符串中提取2个字
- 21. Rapidminer从字符串中提取数字
- 22. 从字符串中提取数字javascript
- 23. 从字符串提取
- 24. 提取值从字符串
- 25. 提取从字符串
- 26. 从字典中提取属性值
- 27. 提取从HTML HREF的属性
- 28. c#字符串作为html属性
- 29. 动态HTML字符串插值属性
- 30. 将字符串转换为html属性
我其实有一个框架在我的项目,现在!我无法找到如何使用它!没有关于它的文档,只是关于如何使用它的一小段文字。它没有详细描述。有人知道如何使用ElementParser吗?如果是这样,你能告诉我如何使用它来提取这个'href'属性。谢谢。 – Eli 2011-12-24 14:59:34
我会给它尝试自己,并回来更多的细节。 – Dimme 2011-12-24 18:24:08
你真棒。谢谢! – Eli 2011-12-24 18:25:12