0

私の XML 構造は次のようになります。

<A>
    <B>
        <C>
            <D>
                <E>1</E>
                <F>123</F>
            </D>

            <D>
                <E>1</E>
                <F>153</F>
            </D>
        </C>

        <C>
            <D>
                <E>1</E>
                <F>134</F>
            </D>
        </C>
    </B>

    <B>
        <C>
            <D>
                <E>2</E>
                <F>133</F>
            </D>
        </C>

        <C>
            <D>
                <E>2</E>
                <F>134</F>
            </D>
        </C>
    </B>
</A>

F要素が特定の値を持つすべての「B」要素を(そのコンテンツとともに)取得できるかどうかを知りたいです。この場合は134としましょう。ただし、他の C 要素を一緒に取得したくないので、この例では取得したいと思います。

<A>
    <B>
        <C>
            <D>
                <E>1</E>
                <F>134</F>
            </D>
        </C>
    </B>

    <B>
        <C>
            <D>
                <E>2</E>
                <F>134</F>
            </D>
        </C>
    </B>
</A>

これは可能ですか?私はxpathをいじっていましたが、私が得た唯一のものは、次のxpathを持つB要素(目的のF要素だけでなく)のすべてのコンテンツです: //D[F=134]/parent::C/parent: :B

前もってありがとう、マルシン

4

1 に答える 1

0

B要素レベルで選択している場合(子に他の条件があるかどうかに関係なく)、常にB要素のコンテンツ全体を取得します。

別のオプションは、逆の条件(F!= 134)でC要素レベルで選択し、それらのノードを削除することです。ただし、正確なシナリオによって異なります。

于 2012-07-24T12:10:06.873 に答える