您的位置:首页 > 移动开发 > IOS开发

iOS学习-HTML解析

2014-08-15 21:09 197 查看
解析HTML,借助三方框架,在github中下载:

链接地址:https://github.com/zootreeves/Objective-C-HMTL-Parser

下载完成后请仔细阅读框架中的 README.md ,添加libxml2.dylib

NSError *error = nil;
// 初始化html字符串
NSString *html =
@"<ul>"
"<li><input type='image' name='input1' value='string1value' /></li>"
"<li><input type='image' name='input2' value='string2value' /></li>"
"</ul>"
"<span class='spantext'><b>Hello World 1</b></span>"
"<span class='spantext'><b>Hello World 2</b></span>";
// 创建HTMLParser 对象
HTMLParser *parser = [[HTMLParser alloc] initWithString:html error:&error];

if (error) {
NSLog(@"Error: %@", error);
return;
}

HTMLNode *bodyNode = [parser body];
// 找出tag值为input对应的那些行
NSArray *inputNodes = [bodyNode findChildTags:@"input"];

for (HTMLNode *inputNode in inputNodes) {
<span style="white-space:pre">	</span>// 找出属性name对应的的值input2
if ([[inputNode getAttributeNamed:@"name"] isEqualToString:@"input2"]) {
<span style="white-space:pre">	</span>// 打印出属性value对应的值
NSLog(@"%@", [inputNode getAttributeNamed:@"value"]); //Answer to first question
<span style="white-space:pre">	</span>// 这里打印为: <span style="font-weight: bold; font-family: Helvetica, arial, freesans, clean, sans-serif, 'Segoe UI Emoji', 'Segoe UI Symbol';">string2value</span>
}
}

NSArray *spanNodes = [bodyNode findChildTags:@"span"];

for (HTMLNode *spanNode in spanNodes) {
if ([[spanNode getAttributeNamed:@"class"] isEqualToString:@"spantext"]) {
NSLog(@"%@", [spanNode rawContents]); //Answer to second question
<span style="white-space:pre">	</span>// 这里打印为:
<p class="p1"><span style="white-space:pre">	</span>// <span class='spantext'><b>Hello World 1</b></span></p><p class="p1"><span class="s1">    <span style="white-space:pre">	</span>// </span><span class='spantext'><b>Hello World 2</b></span></p>    }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: