【问题标题】:Get First (specific) node with random (optional) subnodes获取具有随机(可选)子节点的第一个(特定)节点
【发布时间】:2012-01-03 22:06:22
【问题描述】:

我需要一个复杂 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']"

问候克里斯

【问题讨论】:

    标签: xml xpath


    【解决方案1】:

    以下 xpath 对我有用:

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

    【讨论】:

    • 因此我也得到了
    • 已修复,因此只选择顶部元素
    猜你喜欢
    • 2014-03-08
    • 1970-01-01
    • 2014-07-06
    • 2012-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    相关资源
    最近更新 更多