2017-05-11 5 views
1

のXQuery:子値に基づいて、特定の親ノードを削除し、私は子ノードの値に基づいて、XML文書から親ノードを削除しようとしている

ここのは本当に簡単な例は、何私が探しています私は、SQL Server/XQueryを使用して行うことができるようにしたいのですがどのような

<root> 
    <someactivity> 
    <id>123456789</id> 
    </someactivity> 
</root> 

は、子ノードの「ID」に「123456789」のIDを検索することによって、全体の「someactivity」ノードとその内容を削除することです。

は、これまでのところ、私はこのような何か持っている: -

update mytablecontainingXMLcolumns 
    set xmldata.modify('delete //someactivity/id[text()][contains(.,"123456789")]') 

をしかし、私が期待どおりに動作していない - だけで「ID」ノードを削除しているようです。私はこの段階で立ち往生しています。どんな助けや指導も頂けます。

答えて

0

代わりidの親someactivity要素を選択するためにあなたのXPath/XQueryを変更します。

update mytablecontainingXMLcolumns 
    set xmldata.modify('delete //someactivity[contains(id,"123456789")]') 

か、そこに1 someactivity内で複数のid要素であることが、あなたがあれば、親を削除する、少なくともことができるかどうか、idと一致:

update mytablecontainingXMLcolumns 
    set xmldata.modify('delete //someactivity[id[contains(.,"123456789")]]') 
関連する問題