|
|
@ -95,7 +95,13 @@ def mods_to_dict(mods, raise_errors=True):
|
|
|
|
elif tag == '{http://www.loc.gov/mods/v3}recordInfo':
|
|
|
|
elif tag == '{http://www.loc.gov/mods/v3}recordInfo':
|
|
|
|
value['recordInfo'] = TagGroup(tag, group).is_singleton().has_no_attributes().descend(raise_errors)
|
|
|
|
value['recordInfo'] = TagGroup(tag, group).is_singleton().has_no_attributes().descend(raise_errors)
|
|
|
|
elif tag == '{http://www.loc.gov/mods/v3}recordIdentifier':
|
|
|
|
elif tag == '{http://www.loc.gov/mods/v3}recordIdentifier':
|
|
|
|
value['recordIdentifier'] = TagGroup(tag, group).is_singleton().has_attributes({'source': 'gbv-ppn'}).text()
|
|
|
|
# By default we assume source="gbv-ppn" mods:recordIdentifiers (= PPNs),
|
|
|
|
|
|
|
|
# however, in mods:relatedItems, there may be source="dnb-ppns",
|
|
|
|
|
|
|
|
# which we need to distinguish by using a separate field name.
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
|
|
|
value['recordIdentifier'] = TagGroup(tag, group).is_singleton().has_attributes({'source': 'gbv-ppn'}).text()
|
|
|
|
|
|
|
|
except ValueError:
|
|
|
|
|
|
|
|
value['recordIdentifier-dnb-ppn'] = TagGroup(tag, group).is_singleton().has_attributes({'source': 'dnb-ppn'}).text()
|
|
|
|
elif tag == '{http://www.loc.gov/mods/v3}identifier':
|
|
|
|
elif tag == '{http://www.loc.gov/mods/v3}identifier':
|
|
|
|
for e in group:
|
|
|
|
for e in group:
|
|
|
|
if len(e.attrib) != 1:
|
|
|
|
if len(e.attrib) != 1:
|
|
|
|