2017-05-11 1 views
1

는 XQuery : 자식 값에 따라 특정 부모 노드를 삭제 내가 자식 노드의 값에 따라 XML 문서에서 부모 노드를 삭제하기 위해 노력하고있어

다음의 정말 간단한 예제가 내가 무엇을 찾고 있어요 나는 SQL Server를 사용 할 수 있도록하고 싶습니다 무엇

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

는/XQuery는 자식 노드 'ID'에서 '123456789'의 ID를 검색하여 전체 'someactivity'노드와 그 내용을 삭제하는 것입니다 . 이 같은

지금까지 내가있어 무엇인가 : - 나는 예상대로

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

하지만 작동하지 않습니다 - 단지 'ID'노드를 삭제하는 것 같다. 나는이 단계에서 붙어있다. 어떤 도움 /지도라도 부탁드립니다.

답변

0

당신의 XPath를 수정/XQuery는 id 대신 부모 someactivity 요소를 선택합니다 :

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

하거나, 하나의 someactivityid 요소 다수가 될 수 있다면 당신은 부모를 삭제하려는 경우에 적어도 , id 일치 :

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