过滤子元素,但使用XPath保留原始结构

时间:2012-10-15 21:03:01

标签: sql-server xml xpath filter xquery

我怎样才能从中得到:

<a id="1">
    <b>
        <c type="1"/>
        <c type="0"/>
        <c type="0"/>
    </b>
    <b>
        <c type="1"/>
        <c type="0"/>
        <c type="1"/>
    </b>
</a>
<a id="2">
    <b>
        <c type="1"/>
        <c type="1"/>
        <c type="0"/>
    </b>
    <b>
        <c type="1"/>
        <c type="1"/>
    </b>
</a>

以下内容:

<a id="1">
    <b>
        <c type="1"/>
    </b>
    <b>
        <c type="1"/>
        <c type="1"/>
    </b>
</a>
<a id="2">
    <b>
        <c type="1"/>
        <c type="1"/>
    </b>
    <b>
        <c type="1"/>
        <c type="1"/>
    </b>
</a>

所以我想过滤元素,但保留原始结构。我用的是sql server。 我尝试了一些变化,但没有一个像我预期的那样有效。

1 个答案:

答案 0 :(得分:0)

@x是你的xml ......

set  @x.modify('delete (/a/b/c[@type="0"])')