2017-04-13 44 views
0

我有一個問題(我在本網站上實際詢問的第一個問題)。我的xquery聲明有問題。我想要做的是將一個變量名稱放入一個xml標籤的聲明中(例如,在XML標記的聲明中插入變量名稱

我不知道這是否可以實現,我一直在嘗試很多語法,但那是什麼我走到這一步:

let $test:= ("1", "2", "3") 
return 
<ROOT> 
{ 
    for $x in $test return 
    <TEST{$x}>foo</TEST{$x}> 
} 
</ROOT> 

而這正是我希望有一個結果:

<TEST1>foo</TEST1> 
<TEST3>foo</TEST2> 
<TEST3>foo</TEST3> 

我知道這是不是一個xml應該怎麼做,這將是更好的有什麼東西如:

<BAR> 
    <TEST>foo</TEST> 
    <ID>1</ID> 
</BAR>><BAR> 
    <TEST>foo</TEST> 
    <ID>2</ID> 
</BAR> 

但我不負責輸入中的這部分xml。客戶端... 當然,我寫的xquery是一個非常簡單的從一個更大的一個,我只是孤立了我得到的問題。

有沒有辦法做到這一點?

+0

作爲感興趣的事情,當你「嘗試了很多語法」你這樣做純粹是通過試驗和錯誤,還是你去某種參考文檔,它告訴你是什​​麼XQuery的實際語法是?因爲用任何語言編程通過反覆試驗都不會是一個非常有效的過程... –

+0

[XQuery:使用給定名稱創建新元素?]的可能重複(http://stackoverflow.com/questions/2542235/xquery-create-a-new-element-with-a-given-name) –

+0

@MichaelKay:我知道但我不知道xquery很好。我不是那個負責這個部分的工程師,而是那個正在度假的人。我必須找到一種方法來做到這一點,我沒有時間去查看文檔和xquery的理論。我知道這不是應該如何做,但我只需要一些提示如何去做,因爲我真的不知道從哪裏開始尋找 – Cucunimbus

回答

0

我找到了解決辦法:

let $test:= ("1", "2", "3") 

return 
<ROOT> 
{ 
    for $x in $test return 
    element {concat('TEST', $x)} {'foo'} 
} 
</ROOT>