2015-11-30 89 views
2

我正在嘗試在xquery中創建類似結構的哈希映射/鍵值對。我知道狀結構的地圖XQuery中存在:http://www.w3.org/2005/xpath-functions/map/在XQuery中創建地圖

,甚至發現文檔中撒克遜:http://www.saxonica.com/html/documentation/functions/map/

但是我既不能確定如何創建地圖或使用它。

這裏是我到目前爲止的代碼:

declare namespace map="http://www.w3.org/2005/xpath-functions/map"; 
let $a := map:map() 

但我得到一個錯誤:

Cannot find a matching 1-argument function named 
    {http://www.w3.org/2005/xpath-functions/map}map() 

那麼究竟如何我使用貼圖XQuery中?

回答

2

語法在XSLT 3.0和XQuery 3.1中,並且隨着工作草案的發展已經進行了一些迭代。當前語法(在撒克遜9.7支持)允許

map{} 

爲空映射

map{'a':1, 'b':2} 

針對具有已知數量的條目的映射(兩個鍵和值可以是任意的表達式),和

map:merge(for $x in //emp return map{$x!name : [email protected]}) 

對於具有靜態未知數目的條目的地圖。

+0

這似乎是在正確的軌道上,但現在我得到以下錯誤:'要使用XPath 3.1語法,您必須配置XPath分析器來處理它。我該怎麼做 –

+0

取決於你使用的界面:命令行? s9api API? XQJ? –

+0

我正在使用命令行 –