- // field value
- if ((mmcur->subfield == '$') && (s = field->val))
- {
- meta_node = xmlNewChild(xml_out_root, ns_pz, BAD_CAST "metadata", s);
- xmlSetProp(meta_node, BAD_CAST "type", mmcur->pz);
- }
- // catenate all subfields
- else if ((mmcur->subfield == '*') && (s = marchash_catenate_subfields(field, " ", nmem)))
- {
- meta_node = xmlNewChild(xml_out_root, ns_pz, BAD_CAST "metadata", s);
- xmlSetProp(meta_node, BAD_CAST "type", mmcur->pz);
- }
- // subfield value
- else if (mmcur->subfield)
+ meta_node = xmlNewChild(xml_out_root, ns_pz, BAD_CAST "metadata", BAD_CAST s);
+ xmlSetProp(meta_node, BAD_CAST "type", BAD_CAST mmcur->pz);
+ }
+ // catenate all subfields
+ else if ((mmcur->subfield == '*') && (s = marchash_catenate_subfields(field, " ", nmem)))
+ {
+ meta_node = xmlNewChild(xml_out_root, ns_pz, BAD_CAST "metadata", BAD_CAST s);
+ xmlSetProp(meta_node, BAD_CAST "type", BAD_CAST mmcur->pz);
+ }
+ // subfield value
+ else if (mmcur->subfield)
+ {
+ subfield = 0;
+ while ((subfield =
+ marchash_get_subfield(mmcur->subfield,
+ field, subfield)) != 0)