2016-04-16 19 views
2

Ich nehme einige Daten aus XML und übersetze es in Turtle/N3. Ich möchte @ Prefix und Namespace-URLs am Anfang hinzufügen. Die ursprüngliche XML ist so etwas wie:In XQuery, wie die Zeichenfolge Ausgangsinhalt von der Übersetzung in Entität zu halten?

<xxx> 
<country 
name="XX" 
population="NN"> 
... 
</country> 
... 
</xxx> 

ich die XQuery schreiben:

declare function local:genPopulation()as xs:string* { 
let $countries:=doc("mondial-3.0.xml")//country 
for $elt in $countries 
let $population := $elt/@population[1] 
let $countryName := $elt/@name 
return (concat(":",$countryName,":population :",$population,".&#xa;")) 
}; 
"&#xa;","@prefix rdf: <http://www.w3.org/1999/02/22‐rdf‐syntax‐ns#> .","&#xa;", 
"@prefix : <http://lyle.smu.edu/cse7347/> .","&#xa;", 
local:genPopulation() 

Die Ausgabe lautet:

<?xml version="1.0" encoding="UTF-8"?> 
@prefix rdf: &lt;http://www.w3.org/1999/02/22‐rdf‐syntax‐ns#&gt; . 
@prefix : &lt;http://lyle.smu.edu/cse7347/&gt; . 
:Albania:population :3249136. 
:Andorra:population :72766. 
.. 
... 

Die Ausgabe übersetzt das Original "<" und ">" zu "<" und ">". Wie behalten Sie diese Zeichenfolge unverändert? Ich möchte die Ausgabe wie:

@prefix rdf: <http://www.w3.org/1999/02/22‐rdf‐syntax‐ns#> . 
@prefix : <http://lyle.smu.edu/cse7347/> . 
:Albania:population :3249136. 
... 

Was soll ich tun? enter image description here

+3

Ihre Ausgabe wird als XML serialisiert. Versuchen Sie, eine Serialisierungsoption hinzuzufügen. deklariere Ausgabe: method "text"; – chrisis

+0

@chrisis Ich füge 'declare namespace output = "http://www.w3.org/2010/xslt-xquery-serialization"; deklariere die Option output: method "text"; "am Anfang und es funktioniert! Vielen Dank! – Mayoco

+0

@chrisis Bitte machen Sie Ihren Kommentar zu einer Antwort, damit diese richtig bestätigt und abgestimmt werden kann. – joewiz

Antwort

2

Die Ausgabe wird als XML serialisiert. Zum Serialisieren als Text hinzufügen

declare namespace output = "w3.org/2010/xslt-xquery-serialization"; 
declare output:method "text";