0

我有以下 XML:

<Item type="Workflow Process">
    <id>72F2AEEE86644D16ADE4B8FCEF68638A</id>
    <keyed_name>PR-100001</keyed_name>
    <Relationships>
        <Item type="Workflow Process Activity">
            <id>818175D7A6204275B9EAC45517FFC0DE</id>
            <related_id>
                <Item type="Activity">
                    <id>E0B712EB12914FBD8B5AEDCBDB3F313F</id>
                    <keyed_name>Start</keyed_name>
                </Item>
            </related_id>
        </Item>
    </Relationships>
</Item>

注意:上面的 XML 结构在我的 XML 文件中重复使用不同的值<id><keyed_name>

我有<id><Item type="Activity">我想知道它所属<id>的父节点。<Item type="Workflow Process">Activity

什么将是 XPath 来实现它?

4

1 回答 1

1

如果您已经有对内部的引用Activity并且可以评估一个将其作为上下文节点的 XPath,那么

ancestor::Item[@type = 'Workflow Process']/id

如果您只有 id 并且从树的顶部开始,那么只要所有 id 在文档中都是全局唯一的,我能想到的最简单的是

//Item[@type = 'Workflow Process'][.//id = 'id you want']/id

在不知道上下文的情况下,我无法更具体 - 这是在 XSLT 中还是您使用的是某种 DOM 库(哪个?)。

于 2012-10-05T07:48:39.180 回答