0

我有以下结构,我想在其中获取名称为innerItem. 我可以在查询中使用的唯一节点名称是childId出于外部原因。

复杂之处在于在该innerItem节点和innerItemData 节点中都找到了childId 节点。

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

这可以通过单个 xpath 表达式实现吗?

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

我需要从祖父母那里工作,因为这永远不会改变,并且总是被称为“容器”,而 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>
4

1 回答 1

0

可能这就是您正在寻找的:

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

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

于 2013-06-28T12:16:06.157 回答