Skip to content

Instantly share code, notes, and snippets.

@zopyx
Created January 2, 2019 14:07
Show Gist options
  • Save zopyx/467a01264d53bdaa48ad27cd553cfda8 to your computer and use it in GitHub Desktop.
Save zopyx/467a01264d53bdaa48ad27cd553cfda8 to your computer and use it in GitHub Desktop.
xquery version "3.0";
declare function local:trim($arg as xs:string?) as xs:string {
replace(replace($arg,'\s+$',''),'^\s+','')
} ;
let $doc := doc('/foo/de/ayapedia/addendums/ernaehrung_9861fc6a-ba68-11e8-a8a1-001c4210b7a0/current-20180920-111838.bak/xml/index.xml')
return
<item>
<uri>{base-uri($doc)}</uri>
<title>{local:trim($doc//meta[@name="Titel"]/value/text())}</title>
<description>{local:trim($doc//meta[@name="Beschreibung"]/value/text())}</description>
<language>{local:trim($doc//meta[@name="Sprache"]/value/text())}</language>
<status>{local:trim($doc//meta[@name="Status"]/value/text())}</status>
<area>{local:trim($doc//meta[@name="Bereich"]/value/text())}</area>
<path>{local:trim($doc//meta[@name="Pfad"]/value/text())}</path>
<date>{local:trim($doc//meta[@name="Stand"]/value/text())}</date>
<url>{local:trim($doc//meta[@name="URL"]/value/text())}</url>
<atc_code>{local:trim($doc//meta[@name="ATC"]/value/text())}</atc_code>
<guideline_id>{local:trim($doc//meta[@name="GuidelineID"]/value/text())}</guideline_id>
<plone_uuid>{local:trim($doc//meta[@name="PloneUUID"]/value/text())}</plone_uuid>
<old_authors_additional>{local:trim($doc//meta[@name="FruehereAutorenZusatzinformationen"]/value/text())}</old_authors_additional>
<authors_additional>{local:trim($doc//meta[@name="AutorenZusatzinformationen"]/value/text())}</authors_additional>
<documenttype>{local:trim($doc//meta[@name="DokumentTyp"]/value/text())}</documenttype>
{
for $node in $doc//meta[@name="Fachgesellschaften"]/value
return
<societies json:array="true">{$node/text()}</societies>
}
{
for $node in $doc//meta[@name="Zulassungsland"]/value
return
<certification_countries json:array="true">{$node/text()}</certification_countries>
}
{
for $node in $doc//meta[@name="ICD10"]/value
return
<codes_icd10 json:array="true">{$node/text()}</codes_icd10>
}
{
for $node in $doc//meta[@name="LLThema"]/value
return
<guideline_topics json:array="true">{$node/text()}</guideline_topics>
}
{
for $node in $doc//meta[@name="Spezifikation"]/value
return
<specifications json:array="true">{$node/text()}</specifications>
}
{
for $node in $doc//meta[@name="Spezifikation2"]/value
return
<specifications2 json:array="true">{$node/text()}</specifications2>
}
{
for $node in $doc//meta[@name="Klassifizierung"]/value
return
<classifications json:array="true">{$node/text()}</classifications>
}
{
for $node in $doc//meta[@name="Autoren"]/value
return <authors json:array="true">{$node/text()}</authors>
}
{
for $node in $doc//meta[@name="FruehereAutoren"]/value
return <old_authors json:array="true">{$node/text()}</old_authors>
}
</item>
Output of XML under eXist-db and BaseX
<item>
<uri>/foo/de/ayapedia/addendums/ernaehrung_9861fc6a-ba68-11e8-a8a1-001c4210b7a0/current-20180920-111838.bak/xml/index.xml</uri>
<title>Ernährung</title>
<description/>
<language>de</language>
<status>current</status>
<area>ayapedia</area>
<path/>
<date>2018-09</date>
<url/>
<atc_code/>
<guideline_id>bef53078-2d8d-42d1-af8c-b3d387dfa52e</guideline_id>
<plone_uuid>464520ec154a42839b9f5d2635caccaf</plone_uuid>
<old_authors_additional/>
<authors_additional>für den Arbeitskreis Ernährung, Stoffwechsel und Bewegung der DGHO</authors_additional>
<documenttype>ayapedia</documenttype>
<societies xmlns:json="http://basex.org/modules/json" json:array="true">dgho</societies>
<guideline_topics xmlns:json="http://basex.org/modules/json" json:array="true">183</guideline_topics>
<authors xmlns:json="http://basex.org/modules/json" json:array="true">9211</authors>
<authors xmlns:json="http://basex.org/modules/json" json:array="true">5577</authors>
<authors xmlns:json="http://basex.org/modules/json" json:array="true">13728</authors>
<authors xmlns:json="http://basex.org/modules/json" json:array="true">373215</authors>
</item>
JSON output eXist-DB:
{
"status":"draft",
"old_authors_additional":null,
"guideline_id":"9861fc6a-ba68-11e8-a8a1-001c4210b7a0",
"description":null,
"language":"de",
"area":"ayapedia",
"url":null,
"atc_code":null,
"title":"Ern\u00e4hrung",
"uri":"/db/onkopedia/de/ayapedia/addendums/ernaehrung_9861fc6a-ba68-11e8-a8a1-001c4210b7a0/draft/xml/index.xml",
"authors_additional":"f\u00fcr den Arbeitskreis Ern\u00e4hrung, Stoffwechsel und Bewegung der DGHO",
"authors":[
"9211",
"5577",
"13728",
"373215"
],
"guideline_topics":[
"183"
],
"documenttype":"ayapedia",
"date":"2018-09",
"path":null,
"plone_uuid":"0a85617d3c0c4b57b0c7b20d2b0c6d56",
"societies":[
"dgho"
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment