- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
@try
{
if ([[NSThread currentThread] isCancelled]) // Поток мог быть остановлен, пока мы где-то стояли на lock'е
return nil;
// парсим html-строку в DOM
viewData.body = [[viewData.body componentsSeparatedByString: @"<tab"] componentsJoinedByString: @"<b"];
viewData.body = [[viewData.body componentsSeparatedByString: @"</tab"] componentsJoinedByString: @"</b"];
htmlDocPtr hdoc = htmlParseDoc((xmlChar*)[[NSString stringWithFormat:@"<div>%@</div>",viewData.body] UTF8String], "utf-8");
xdoc = [[NSXmlDoc alloc] initWithNode:hdoc];
if ([[NSThread currentThread] isCancelled])
return nil;
// Собираем форматированную строку
blockRanges = [[NSMutableArray alloc] init];
xmlNodePtr node = [xdoc selectNode:@"/html/body/div"].libxmlNode; // Работа напрямую с нодами во враппере не реализованна :(
parsedString = [[NSMutableAttributedString alloc] init];
[self parseTag:node string:parsedString blockRanges:blockRanges];
[xdoc release];
xdoc = nil;
viewData.body = [[viewData.body componentsSeparatedByString: @"<b"] componentsJoinedByString: @"<tab"];
viewData.body = [[viewData.body componentsSeparatedByString: @"</b"] componentsJoinedByString: @"</tab"];
if ([[NSThread currentThread] isCancelled])
return nil;
Комментарии (0) RSS
Добавить комментарий