- yaz_marc_write_mode(mt, wrbuf);
-
- fputs(wrbuf_buf(wrbuf), stdout);
+ int type = xmlTextReaderNodeType(reader);
+ if (type == XML_READER_TYPE_ELEMENT)
+ {
+ const char *name = (const char *)
+ xmlTextReaderLocalName(reader);
+ if (!strcmp(name, "record") || !strcmp(name, "r"))
+ {
+ xmlNodePtr ptr = xmlTextReaderExpand(reader);
+
+ int r = yaz_marc_read_xml(mt, ptr);
+ if (r)
+ {
+ no_errors++;
+ fprintf(stderr, "yaz_marc_read_xml failed\n");
+ }
+ else
+ {
+ 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);
+ no_errors++;
+ }
+ fputs(wrbuf_cstr(wrbuf), stdout);
+ wrbuf_rewind(wrbuf);
+ }
+ }
+ }