2
XMLからデータを取得し、Turtle/N3に変換します。 最初に@prefixとnamespaceのURLを追加します。オリジナルの "<" と ">"XQueryで文字列の出力内容をエンティティに変換しないようにする方法
<?xml version="1.0" encoding="UTF-8"?>
@prefix rdf: <http://www.w3.org/1999/02/22‐rdf‐syntax‐ns#> .
@prefix : <http://lyle.smu.edu/cse7347/> .
:Albania:population :3249136.
:Andorra:population :72766.
..
...
出力は翻訳:
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,".
"))
};
"
","@prefix rdf: <http://www.w3.org/1999/02/22‐rdf‐syntax‐ns#> .","
",
"@prefix : <http://lyle.smu.edu/cse7347/> .","
",
local:genPopulation()
出力は次のとおりです。私は、XQueryを書く
<xxx>
<country
name="XX"
population="NN">
...
</country>
...
</xxx>
: 元のXMLは、何かに似ています「<」および「>」に設定します。 これらの文字列を変更しないでください。
@prefix rdf: <http://www.w3.org/1999/02/22‐rdf‐syntax‐ns#> .
@prefix : <http://lyle.smu.edu/cse7347/> .
:Albania:population :3249136.
...
出力はXMLとしてシリアル化されています。シリアライズオプションを追加してみてください。宣言する出力:メソッド "テキスト"; – chrisis
@chrisis 'declare namespace output = "http://www.w3.org/2010/xslt-xquery-serialization"を追加します。オプション出力を宣言します:メソッド "text"; 'が冒頭にあり、動作します!ありがとうございました! – Mayoco
@chrisis返信にあなたのコメントを書いて、正しく承認され、投票されるようにしてください。 – joewiz