以下の xml には、3 つの 5 つの /Item 要素があり、そのうちの 4 つには Blob 子要素があります。子 Blob 要素を持つ要素を削除したいのですが、Item/@Name にテキスト "Blob" が含まれている要素だけを削除したいと考えています。
<Items>
<Item Name="Blob123">
<Blob/>
</Item>
<Item Name="Blob124">
<Blob/>
</Item>
<Item Name="Blob125">
<Blob/>
</Item>
<Item Name="Blob126">
</Item>
<Item Name="Xyz126">
<Blob/>
</Item>
</Items>
このクエリは、'Blob%' という名前の 3 つの /Item 要素を返し、子の /Blob 要素は問題なく返します。
select xmlVal.query('(/Items/Item[contains(@Name, "Blob")]/Blob/..)')
ただし、この xquery を使用してこれらの要素を削除しようとすると:
select xmlVal.modify('delete (/Items/Item[contains(@Name, "Blob")]/Blob/..)')
問題: XML データ型メソッド 'modify' の使用が正しくありません。このコンテキストでは、非ミューテーター メソッドが必要です。
私は何を間違っていますか。