static void xlsx_book_init (wbook *book, xlsx_info *xinfo, char *sheetname) { wbook_init(book, NULL, sheetname); book->nsheets = xinfo->n_sheets; book->sheetnames = xinfo->sheetnames; book->data = xinfo; }
static int wbook_get_info (const char *fname, const int *list, char *sheetname, wbook *book, PRN *prn) { xmlDocPtr doc; xmlNodePtr cur, sub; char *tmp = NULL; int got_index = 0; int err = 0; err = gretl_xml_open_doc_root(fname, "Workbook", &doc, &cur); if (err) { return err; } wbook_init(book, list, sheetname); /* Now walk the tree */ cur = cur->xmlChildrenNode; while (cur != NULL && !got_index && !err) { if (!xmlStrcmp(cur->name, (XUC) "SheetNameIndex")) { got_index = 1; sub = cur->xmlChildrenNode; while (sub != NULL && !err) { if (!xmlStrcmp(sub->name, (XUC) "SheetName")) { tmp = (char *) xmlNodeGetContent(sub); if (tmp != NULL) { if (wbook_record_name(tmp, book)) { err = 1; free(tmp); } } } sub = sub->next; } } cur = cur->next; } xmlFreeDoc(doc); return err; }