-/* $Id: mod_dom.c,v 1.23 2007-02-28 14:46:41 marc Exp $
+/* $Id: mod_dom.c,v 1.24 2007-02-28 16:46:19 marc Exp $
Copyright (C) 1995-2007
Index Data ApS
}
static ZEBRA_RES perform_convert(struct filter_info *tinfo,
+ struct recExtractCtrl *extctr,
struct convert_s *convert,
const char **params,
xmlDocPtr *doc,
*last_xsp = convert->stylesheet_xsp;
xmlFreeDoc(*doc);
- /* *doc = res_doc; */
/* now saving into buffer and re-reading into DOM to avoid annoing
XSLT problem with thrown-out indentation text nodes */
*doc = xmlParseDoc(buf_out);
- yaz_log(YLOG_DEBUG, "%s: %s \n %s",
- tinfo->fname ? tinfo->fname : "none ",
- convert->stylesheet,
- buf_out);
-
+ /* writing debug info out */
+ if (extctr->flagShowRecords)
+ yaz_log(YLOG_LOG, "%s: XSLT %s \n %s",
+ tinfo->fname ? tinfo->fname : "(none)",
+ convert->stylesheet,
+ buf_out);
+
xmlFree(buf_out);
}
return ZEBRA_OK;
xmlChar * index_p)
{
xmlChar *text = xmlNodeGetContent(node);
- size_t text_len = strlen((const char *)text);
-
- /*dom_log(YLOG_DEBUG, tinfo, node, "Indexing: '%s' '%s'", index_p, text);*/
+ size_t text_len = strlen((const char *)text);
/* if there is no text, we do not need to proceed */
if (text_len)
type[eval - bval] = '\0';
}
- /* actually indexing the text given */
- dom_log(YLOG_DEBUG, tinfo, 0,
- "INDEX '%s:%s' '%s'",
- index ? (const char *) index : "null",
- type ? (const char *) type : "null",
- text ? (const char *) text : "null");
+ /* writing debug out */
+ if (extctr->flagShowRecords)
+ dom_log(YLOG_LOG, tinfo, 0,
+ "INDEX '%s:%s' '%s'",
+ index ? (const char *) index : "null",
+ type ? (const char *) type : "null",
+ text ? (const char *) text : "null");
+ /* actually indexing the text given */
recword->index_name = (const char *)index;
if (type && *type)
recword->index_type = *type;
xmlChar * rank_p,
xmlChar * type_p)
{
- dom_log(YLOG_DEBUG, tinfo, 0,
- "RECORD id=%s rank=%s type=%s",
- id_p ? (const char *) id_p : "null",
- rank_p ? (const char *) rank_p : "null",
- type_p ? (const char *) type_p : "null");
+
+ /* writing debug info out */
+ if (extctr->flagShowRecords)
+ dom_log(YLOG_LOG, tinfo, 0,
+ "RECORD id=%s rank=%s type=%s",
+ id_p ? (const char *) id_p : "(null)",
+ rank_p ? (const char *) rank_p : "(null)",
+ type_p ? (const char *) type_p : "(null)");
+
if (id_p)
sscanf((const char *)id_p, "%255s", extctr->match_criteria);
RecWord recword;
(*extctr->init)(extctr, &recword);
+ /*
if (extctr->flagShowRecords)
{
xmlDocDumpMemory(doc, &buf_out, &len_out);
fwrite(buf_out, len_out, 1, stdout);
xmlFree(buf_out);
}
+ */
process_xml_element_node(tinfo, extctr, &recword, (xmlNodePtr)doc);
}
set_param_str(params, "schema", zebra_dom_ns, tinfo->odr_record);
/* input conversion */
- perform_convert(tinfo, input->convert, params, &doc, 0);
+ perform_convert(tinfo, p, input->convert, params, &doc, 0);
if (tinfo->store)
{
/* store conversion */
store_doc = xmlCopyDoc(doc, 1);
- perform_convert(tinfo, tinfo->store->convert,
+ perform_convert(tinfo, p, tinfo->store->convert,
params, &store_doc, &last_xsp);
}
store_doc ? store_doc : doc, last_xsp);
else
xmlDocDumpMemory(store_doc ? store_doc : doc, &buf_out, &len_out);
- if (p->flagShowRecords)
- fwrite(buf_out, len_out, 1, stdout);
+
+ /* if (p->flagShowRecords)
+ fwrite(buf_out, len_out, 1, stdout); */
+
(*p->setStoreData)(p, buf_out, len_out);
xmlFree(buf_out);
xmlFreeDoc(store_doc);
/* extract conversion */
- perform_convert(tinfo, tinfo->extract->convert, params, &doc, 0);
+ perform_convert(tinfo, p, tinfo->extract->convert, params, &doc, 0);
/* finally, do the indexing */
if (doc)
xmlDocSetRootElement(doc, ptr2);
+ /* writing debug info out */
+ if (p->flagShowRecords){
+ xmlChar *buf_out = 0;
+ int len_out = 0;
+ xmlDocDumpMemory(doc, &buf_out, &len_out);
+ yaz_log(YLOG_LOG, "%s: XMLREADER depth: %i\n%s",
+ tinfo->fname ? tinfo->fname : "(none)",
+ depth,
+ buf_out);
+ xmlFree(buf_out);
+ }
+
return convert_extract_doc(tinfo, input, p, doc);
}
else
}
/* retrieve conversion */
- perform_convert(tinfo, retrieve->convert, params, &doc, &last_xsp);
+ perform_convert(tinfo, 0, retrieve->convert, params, &doc, &last_xsp);
if (!doc)
{
p->diagnostic = YAZ_BIB1_SYSTEM_ERROR_IN_PRESENTING_RECORDS;