예제 #1
0
def metajson_to_oai_dc_xmletree(document, with_schema_location=True):
    """ MetaJSON Document -> oai_dc xmletree """
    rec_id = document["rec_id"]
    xmletree.register_namespaces()
    # oai_dc root
    oai_dc = ET.Element(xmletree.prefixtag("oai_dc", "oai_dc"))
    if with_schema_location:
        oai_dc.set(xmletree.prefixtag("xsi", "schemaLocation"), constants.xmlns_map["oai_dc"] + " " + constants.xmlns_schema_map["oai_dc"])

    # title
    if "title" in document:
        dc_title = ET.SubElement(oai_dc, xmletree.prefixtag("dc", "title"))
        dc_title.text = document["title"]

    # creators
    if "creators" in document and document["creators"]:
        for creator in document["creators"]:
            if "roles" in creator and creator["roles"] and creator["roles"][0]:
                creator_role = creator["roles"][0]
                if creator_role in creator_service.role_type and creator_service.role_type[creator_role] == creator_service.role_type_creator:
                    dc_creator = ET.SubElement(oai_dc, xmletree.prefixtag("dc", "creator"))
                    dc_creator.text = creator.formatted_name(metajson.STYLE_FAMILY_COMMA_GIVEN)
                    continue
            dc_contributor = ET.SubElement(oai_dc, xmletree.prefixtag("dc", "contributor"))
            dc_contributor.text = creator.formatted_name(metajson.STYLE_FAMILY_COMMA_GIVEN)

    return (rec_id, oai_dc)
예제 #2
0
def parse_xmletree_str(input_string):
    xmletree.register_namespaces()
    return ET.fromstring(input_string)
예제 #3
0
def response_to_xmletree(response):
    xmletree.register_namespaces()
    return ET.fromstring(response.content)
예제 #4
0
def response_to_xmletree(response):
    xmletree.register_namespaces()
    return ET.fromstring(response.content)