0
我試圖使用XQuery更新包裝與另一個新節點的節點,我被困在幾個不同的錯誤,讓我給你一個簡單的例子:XQuery更新來包裝現有節點
初始XML是
<a id="test">
<title>title</title>
</a>
XQuery代碼是:
copy $x := db:open('testdb')/a[@id eq 'test']/title
modify replace node $x
with <b>{$x}</b>
return <ok/>
我使用basex爲周圍的數據庫,這就是爲什麼我使用DB:開啓功能。
我想要得到的到底是
<a id="test">
<b>
<title>title</title>
</b>
</a>
但是我收到一個錯誤:
[XUDY0009] Target has no parent: element title {...}.
注:查詢結果:
db:open('testdb')/a[@id eq 'test']/title
是
<title>title</title>
如果我修改查詢,如下
copy $x := db:open('testdb')/a[@id eq 'test']/title
modify replace node db:open('testdb')/a[@id eq 'test']/title
with <b>{$x}</b>
return <ok/>
那麼錯誤是
[XUDY0014] Node was not created by copy clause: element title {...}.
什麼是做這種更新查詢的正確方法?
第一個查詢會引發錯誤「[XUDY0009] Target沒有父母:元素。「第二個查詢在「替換」標記中引發語法錯誤表達式:(但第三個查詢正常工作) – IgnacioHR
我已更新前兩個查詢。要了解更新表達式和非更新表達式之間的區別,請查看語義:http://docs.basex.org/wiki/Update。 –
好!謝謝!現在所有查詢都可以使用! – IgnacioHR