xpath选择所有父母和所有孩子

jav*_*ali 6 xml xpath

我需要编写2个xpath查询,其中一个选择从元素的直接父项到根的特定元素的所有父项,然后我将能够选择元素的某些特定属性.

而另一个选择元素的所有子元素,无论它们在哪里.

例如,如果xml文档是这样的:

<role key='total-admin'>
    <role key='security-admin'>
        <role key='users-admin'>
            <role key='add-user'></role>
            <role key='delete-user'></role>
            <role key='deactivate-user'></role>
        </role>
    </role>
</role>
Run Code Online (Sandbox Code Playgroud)
  1. 我想用键'add-user'选择元素的所有父元素.结果将是:

    [ 'users-admin' , 'security-admin' , 'total-admin' ]
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我想选择'security-admin'的所有孩子.结果将是:

    [ 'users-admin' , 'add-user' , 'delete-user' , 'deactivate-user' ]
    
    Run Code Online (Sandbox Code Playgroud)

Kir*_*huk 8

对于第一个查询使用:

//role[@key = 'add-user']/ancestor::*
Run Code Online (Sandbox Code Playgroud)

对于第二个:

//role[@key = 'security-admin']//*
Run Code Online (Sandbox Code Playgroud)