Skip to content

_elseNested only outputs two hierachy levels #378

@TobiasNx

Description

@TobiasNx

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é"
	}
}

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions