X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fnormalize_record.c;h=5623c339badca04acfaee8f132cd9b0f3f9fe51f;hb=3d39722ae64c21a6d5833ec667ef9fd2fb66913f;hp=fa39da2aba316ebba218e5a1b0fb2b5667f8ea55;hpb=111cd7b055fafeb0bf763b3d44ddccdf9515a144;p=pazpar2-moved-to-github.git diff --git a/src/normalize_record.c b/src/normalize_record.c index fa39da2..5623c33 100644 --- a/src/normalize_record.c +++ b/src/normalize_record.c @@ -121,34 +121,35 @@ void normalize_record_destroy(normalize_record_t nt) } int normalize_record_transform(normalize_record_t nt, xmlDoc **doc, - const char **parms) + const char **parms) { - struct normalize_step *m; - if (nt) { + if (nt) + { + struct normalize_step *m; for (m = nt->steps; m; m = m->next) { xmlNodePtr root = 0; - xmlDoc *new; + xmlDoc *ndoc; if (m->stylesheet) - { - new = xsltApplyStylesheet(m->stylesheet, *doc, parms); - } + ndoc = xsltApplyStylesheet(m->stylesheet, *doc, parms); else if (m->marcmap) - { - new = marcmap_apply(m->marcmap, *doc); - } - - root = xmlDocGetRootElement(new); - + ndoc = marcmap_apply(m->marcmap, *doc); + else + ndoc = 0; xmlFreeDoc(*doc); - if (!new || !root || !root->children) + *doc = 0; + + if (ndoc) + root = xmlDocGetRootElement(ndoc); + + if (ndoc && root && root->children) + *doc = ndoc; + else { - if (new) - xmlFreeDoc(new); - *doc = 0; + if (ndoc) + xmlFreeDoc(ndoc); return -1; } - *doc = new; } } return 0;