Как я могу вернуть все гиперссылки в HTML-файл, используя LibXml 2.2 (Цель C)
Я хочу вернуть все гиперссылки в HTML. что такое XPath Query?(Цель C)
1 ответ
Вы можете использовать следующий образец для вашей задачи
NSData *data = [inputString dataUsingEncoding:NSUTF8StringEncoding];
xmlDocPtr doc = xmlReadMemory([data bytes], [data length], "", NULL, XML_PARSE_RECOVER);
xmlXPathContextPtr xpathCtx = xmlXPathNewContext(doc);
xmlXPathObjectPtr xpathObj = xmlXPathEvalExpression(BAD_CAST("//a"), xpathCtx);
if (xpathObj && xpathObj->nodesetval) {
for (int i = 0; i < xpathObj->nodesetval->nodeNr; ++i) {
xmlNodePtr node = xpathObj->nodesetval->nodeTab[i];
xmlChar *hrefProp = xmlGetProp(node, BAD_CAST("href");
xmlChar *content = xmlNodeGetContent(node);
NSString *hrefString = [NSString stringWithUTF8String:(char *)hrefProp];
NSString *contentString = [NSString stringWithUTF8String:(char *)content];
xmlFree(hrefProp);
xmlFree(content);
NSLog(@"Anchor %@, Content: %@", hrefString, contentString);
}
xmlXPathFreeContext(xpathCtx);
xmlXPathFreeObject(xpathObj);
xmlFreeDoc(doc);
Для настройки libxml2 внимательно прочитайте раздел Настройка файла вашего проекта. Также вы можете скачать рабочий образец с сайта и скомпилировать.