X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fmarc_read_xml.c;h=7356ca2f67973d04fb36ce6148b4231e20c9f106;hp=7691c7c1e3305eb4304db9321ee14901e3297778;hb=b06636208651777c08e2456bf3b5953fc3c0f2c2;hpb=c9b2e9553e1e59d74556a83f38d39e16a389a286 diff --git a/src/marc_read_xml.c b/src/marc_read_xml.c index 7691c7c..7356ca2 100644 --- a/src/marc_read_xml.c +++ b/src/marc_read_xml.c @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2012 Index Data + * Copyright (C) 1995-2013 Index Data * See the file LICENSE for details. */ @@ -185,18 +185,14 @@ static int yaz_marc_read_xml_leader(yaz_marc_t mt, const xmlNode **ptr_p, for(; p; p = p->next) if (p->type == XML_TEXT_NODE) leader = (const char *) p->content; - break; - } - else - { - yaz_marc_cprintf( - mt, "Expected element 'leader', got '%.80s'", ptr->name); + ptr = ptr->next; } + break; } if (!leader) { - yaz_marc_cprintf(mt, "Missing element 'leader'"); - return -1; + yaz_marc_cprintf(mt, "Missing leader. Inserting fake leader"); + leader = "00000nam a22000000a 4500"; } if (strlen(leader) != 24) { @@ -420,9 +416,9 @@ int yaz_marc_read_xml(yaz_marc_t mt, const xmlNode *ptr) switch (format) { case YAZ_MARC_MARCXML: - return yaz_marc_read_xml_fields(mt, ptr->next, indicator_length); + return yaz_marc_read_xml_fields(mt, ptr, indicator_length); case YAZ_MARC_TURBOMARC: - return yaz_marc_read_turbo_xml_fields(mt, ptr->next, indicator_length); + return yaz_marc_read_turbo_xml_fields(mt, ptr, indicator_length); } return -1; }