我有以下節點,我想在其中添加屬性到所有add
節點。如何將屬性添加到節點的所有特定子節點
<test>
<add>x1</add>
<c><add>x2</add></c>
<b att1="x">x</b>
</test>
我試圖
functx:add-attributes($test, xs:QName('att1'), 1)
它可以將屬性添加到test
節點。但
當我試圖
functx:add-attributes($test/add, xs:QName('att1'), 1)
它添加的屬性到第一附加節點,但僅返回添加的屬性添加節點。然後當我嘗試$test//add
它會引發錯誤。
當我試圖
for $add in $test//add
return functx:add-attributes($add, xs:QName('att1'), 1)
它返回兩個單獨添加節點。現在,如何重構原始節點以僅將屬性添加到指定的節點。
我不想改變DB值。我想獲得價值,我想用一些自定義屬性重構它,並將其呈現給轉換。我嘗試了第二種方法,但是$ node/node()!本地:更改(。)拋出錯誤。我不確定操作符「!」的用法。這是錯誤「意外的標記語法錯誤,意外的垃圾_,期待Comma_或Rbrace_」。我試着用很多方式改變它,但它不起作用。請回復。我也會努力讓它工作。 – Karthick
您使用的是什麼版本的MarkLogic? 「!」運營商相對較新。你可以在$ node/node()中用'for $ n替換那行。return local:change($ n)' –
非常感謝你,它工作正常。在辦公室我們使用ML7。我在我家ML5的地方試過這個樣品。在ML7中它正在工作。 – Karthick