+ int write_rc = yaz_marc_write_mode(mt, wrbuf);
+ if (write_rc)
+ yaz_log(YLOG_WARN, "yaz_marc_write_mode: write error: %d", write_rc);
+
+ fputs(wrbuf_cstr(wrbuf), stdout);
+ wrbuf_rewind(wrbuf);
+ }
+ }
+ }
+ }
+ }
+#else
+ xmlDocPtr doc = xmlParseFile(fname);
+ if (doc)
+ {
+ xmlNodePtr ptr = xmlDocGetRootElement(doc);
+ for (; ptr; ptr = ptr->next)
+ {
+ if (ptr->type == XML_ELEMENT_NODE)
+ {
+ if (!strcmp((const char *) ptr->name, "collection"))
+ {
+ ptr = ptr->children;
+ continue;
+ }
+ if (!strcmp((const char *) ptr->name, "record") ||
+ !strcmp((const char *) ptr->name, "r"))
+ {
+ int r = yaz_marc_read_xml(mt, ptr);
+ if (r)
+ fprintf(stderr, "yaz_marc_read_xml failed\n");
+ else
+ {