使用XPath遍历XML

时间:2012-10-05 07:19:41

标签: xml xpath

我有以下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">的{​​{1}}。

实现它的XPath是什么?

1 个答案:

答案 0 :(得分:1)

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

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

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

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

如果不知道上下文,我就不能更具体了 - 这是在XSLT中,还是在使用某种类型的DOM库(哪一个?)。