【发布时间】:2012-09-07 15:25:00
【问题描述】:
我目前正在使用 Hpple 来解析 HTML,如下所示:
TFHpple *htmlParser = [TFHpple hppleWithHTMLData:[currentString dataUsingEncoding:NSUTF8StringEncoding]];
NSString *paragraphsXpathQuery = @"//p//text()";
NSArray *paragraphNodes = [htmlParser searchWithXPathQuery:paragraphsXpathQuery];
if ([paragraphNodes count] > 0) {
NSMutableArray *tempArray = [NSMutableArray array];
for (TFHppleElement *element in paragraphNodes) {
[tempArray addObject:[element content]];
}
article.paragraphs = tempArray;
}
这样我得到一个段落数组,我可以使用NSString *result = [myArray componentsJoinedByString:@"\n\n"]; 将它编译成带有换行符的单个文本体。
但是,如果 html 包含标签,它们会被解释为单独的实体,并且会自行换行,因此在一天结束时从这样的一行:
<p>I went to the <a href="blablabla.html">shop</a> to get some milk!</a></p>
<p>It was awesome.</p>
我明白了:
I went to the
shop
to get some milk!
It was awesome!
当然我想得到这个(忽略p标签内的其他标签):
I went to the shop to get some milk!
It was awesome!
你能帮帮我吗?
【问题讨论】:
标签: objective-c ios xpath html-parsing hpple