- }
- wrbuf_printf(wr, ">\n");
- for (s = n->u.datafield.subfields; s; s = s->next)
- {
- size_t using_code_len = get_subfield_len(mt, s->code_data,
- identifier_length);
- wrbuf_iconv_puts(wr, mt->iconv_cd, " <subfield code=\"");
- wrbuf_iconv_write_cdata(wr, mt->iconv_cd,
- s->code_data, using_code_len);
- wrbuf_iconv_puts(wr, mt->iconv_cd, "\">");
- wrbuf_iconv_write_cdata(wr, mt->iconv_cd,
- s->code_data + using_code_len,
- strlen(s->code_data + using_code_len));
- marc_iconv_reset(mt, wr);
- wrbuf_iconv_puts(wr, mt->iconv_cd, "</subfield>");
- wrbuf_puts(wr, "\n");
- }
- wrbuf_printf(wr, " </datafield>\n");
- break;
- case YAZ_MARC_CONTROLFIELD:
- wrbuf_printf(wr, " <controlfield tag=\"");
- wrbuf_iconv_write_cdata(wr, mt->iconv_cd, n->u.controlfield.tag,
- strlen(n->u.controlfield.tag));
- wrbuf_iconv_puts(wr, mt->iconv_cd, "\">");
- wrbuf_iconv_write_cdata(wr, mt->iconv_cd,
- n->u.controlfield.data,
- strlen(n->u.controlfield.data));
-
- marc_iconv_reset(mt, wr);
- wrbuf_iconv_puts(wr, mt->iconv_cd, "</controlfield>");
- wrbuf_puts(wr, "\n");
- break;
- case YAZ_MARC_COMMENT:
- wrbuf_printf(wr, "<!-- ");
- wrbuf_puts(wr, n->u.comment);
- wrbuf_printf(wr, " -->\n");
- break;
- case YAZ_MARC_LEADER:
- wrbuf_printf(wr, " <leader>");
- wrbuf_iconv_write_cdata(wr,
- 0 /* no charset conversion for leader */,
- n->u.leader, strlen(n->u.leader));
- wrbuf_printf(wr, "</leader>\n");