-
Notifications
You must be signed in to change notification settings - Fork 33
Closed
Labels
Description
If operating with a file with more than 2 hierachy levels _elseNested reduces this structure to 2 levels:
Input:
<?xml version="1.0" encoding="UTF-8"?>
<records>
<record>
<mods>
<ID>duepublico_mods_00074526</ID>
<name>
<type>personal</type>
<type>simple</type>
<displayForm>
<value>Armbruster, André</value>
</displayForm>
<role>
<roleTerm>
<authority>marcrelator</authority>
<type>code</type>
<value>aut</value>
</roleTerm>
<roleTerm>
<authority>marcrelator</authority>
<type>text</type>
<value>Author</value>
</roleTerm>
</role>
<nameIdentifier>
<type>gnd</type>
<value>1081830107</value>
</nameIdentifier>
<namePart>
<type>family</type>
<value>Armbruster</value>
</namePart>
<namePart>
<type>given</type>
<value>André</value>
</namePart>
</name>
</mods>
</record>
</records>FLUX:
default infile = FLUX_DIR + "mods.xml";
infile
| open-file
| decode-xml
| handle-generic-xml
| morph(FLUX_DIR + "all.xml")
| encode-xml
| write(FLUX_DIR + "resultNEsted.xml")
;
MORPH:
<?xml version="1.0" encoding="UTF-8"?>
<metamorph xmlns="http://www.culturegraph.org/metamorph" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="1">
<rules>
<data source="_elseNested"/>
</rules>
</metamorph>
OUTPUT:
<?xml version="1.0" encoding="UTF-8"?>
<records>
<record>
<ID>
<value>duepublico_mods_00074526</value>
</ID>
<type>
<value>personal</value>
</type>
<type>
<value>simple</value>
</type>
<value>
<value>Armbruster, André</value>
</value>
<authority>
<value>marcrelator</value>
</authority>
<type>
<value>code</value>
</type>
<value>
<value>aut</value>
</value>
<authority>
<value>marcrelator</value>
</authority>
<type>
<value>text</value>
</type>
<value>
<value>Author</value>
</value>
<type>
<value>gnd</value>
</type>
<value>
<value>1081830107</value>
</value>
<type>
<value>family</value>
</type>
<value>
<value>Armbruster</value>
</value>
<type>
<value>given</value>
</type>
<value>
<value>André</value>
</value>
</record>
</records>
If decoded as JSON:
{
"ID": {
"value": "duepublico_mods_00074526"
},
"type": {
"value": "personal"
},
"type": {
"value": "simple"
},
"value": {
"value": "Armbruster, André"
},
"authority": {
"value": "marcrelator"
},
"type": {
"value": "code"
},
"value": {
"value": "aut"
},
"authority": {
"value": "marcrelator"
},
"type": {
"value": "text"
},
"value": {
"value": "Author"
},
"type": {
"value": "gnd"
},
"value": {
"value": "1081830107"
},
"type": {
"value": "family"
},
"value": {
"value": "Armbruster"
},
"type": {
"value": "given"
},
"value": {
"value": "André"
}
}