2014-07-25 42 views
1

我試圖運行XQuery代碼,但換來的表達變量沒有被解決XQuery的變量不解決其價值

當我運行下面的XQuery代碼

for $x in (<Person/>,<Person/>) 
return $x 

我得到的輸出

<Person/> 
<Person/> 

這很好,但是當我運行下面的代碼

for $x in (<Person/>,<Person/>) 
return <Name>$x</Name> 

我得到

<?xml version="1.0" encoding="UTF-8"?> 
<Name>$x</Name> 
<Name>$x</Name> 

在返回的表達元素內部封閉時,爲什麼沒有解決變量$ X?

回答

3

您應該將$ x放在大括號中,XQuery需要知道您不需要文字文本。

for $x in (<Person/>,<Person/>) 
return <Name>{$x}</Name> 
+0

謝謝,你能解釋爲什麼在第一種情況下X-Query沒有將其解析爲文字文本? – ammar26

+1

我想這只是一個xquery設計決定。我想也可以將任何非轉義內容解釋爲xquery表達式。但是如果你想輸出文本文本,你將不得不做一些特殊的事情。 –