仅当祖父母与特定名称匹配时,xpath才匹配

时间:2013-06-28 12:00:58

标签: xpath

我有以下结构,我希望获得名称为innerItem的所有节点的列表。出于外部原因,我可以在查询中使用的唯一节点名称是childId

复杂性是在innerItem节点和innerItemData节点中都找到了childId节点。

我必须只匹配innerItem`,因为我想要返回所有这些。

这是否可以使用单个xpath表达式?

基本上我想说,找到我所有的innerItem节点,它们的childId节点的值为123,grandParent节点的名称为“Container”。

我需要在祖父母工作,因为这永远不会改变,并且将永远被称为“容器”,而innerContainer_abc可以改变,即它可以是innerContainer_def等

<?xml version="1.0" encoding="UTF-8"?>
<Container>
    <MetaData>
        <id>1</id>
        <date />
    </MetaData>
    <innerContainer_abc>
        <innerItem>
            <childId>123</childId>
            <childCode>123-abc</childCode>
            <innerItemData>
                <childId>123</childId>
            </innerItemData>
        </innerItem>
        <innerItem>
            <childId>123</childId>
            <childCode>123-def</childCode>
            <innerItemData>
                <childId>123</childId>
            </innerItemData>
        </innerItem>
    </innerContainer_abc>
<Container>

1 个答案:

答案 0 :(得分:0)

可能这就是你要找的东西:

//Container/*/innerItem[childId='123']

这是寻找所有带有元素childId的innerItem,其值为“123”作为直接子项和 容器为“祖父母”。