获取具有随机(可选)子节点的第一(特定)节点

时间:2012-01-03 13:43:11

标签: xml xpath

我需要一个深层子节点的复杂xml的第一个节点,其间有随机节点。 我的XML:

<abc>
    <bcd id="1">
        <cde>
            <bcd id="100">
                <cde>
                    <xxx id="998">
                    </xxx>
                </cde>
            </bcd>
        </cde>
    </bcd>
    <bcd id="2">
        <cde>
            <bcd id="101">
                <cde>
                    <bcd id="102">
                        <cde>
                            <xxx id="999">
                            </xxx>
                        </cde>
                    </bcd>
                </cde>
            </bcd>
        </cde>
    </bcd>
</abc>

有了这个XPATH,我只得到这个设计一个正确的结果。嵌套的等级是变量。

"//bcd/cde/bcd/cde/xxx[@id='998']"

我想要一个XPATH,我得到第一个bcd(id ='1')节点:

"//[bcd/cde]+/xxx[@id='998']"

或第一个bcd(id ='2')节点:

"//[bcd/cde]+/xxx[@id='999']"

问候克里斯

1 个答案:

答案 0 :(得分:2)

以下xpath适用于我:

/*/bcd[.//xxx/@id='998']