如何使用路径表达式从数组中获取属性的值

时间:2018-08-13 13:38:47

标签: xml xslt xpath

请考虑以下示例xml。

<Groups>
    <Group id="01" check="true">
        <name>Value</name>
        <age>test</age>
        <setData>
            <data type="module">module</data>
            <data enabled="true">true</data>
        </setData>
    </Group>
    <Group id="02" check="true">
        <name>Value</name>
        <age>test</age>
        <setData>
            <data type="module">module</data>
            <data enabled="true">true</data>
        </setData>
    </Group>
</Groups>

我想使用路径表达式获取setId中GroupId = 1中启用的值。 下面是我的尝试。这是解决该问题的临时方法,但会在数组中查找位置。

String groupId = "1"; //to make group id dynamic.
String pathExpression = "Groups/group[@id='"+groupId+"']/setData/data[2]/text()"

相反,我想通过赋予属性名称“ enabled”来获取值,以便它将检查名称而不是位置。

1 个答案:

答案 0 :(得分:2)

您已经使用正确的语法通过属性值获取group,因此也只需对data元素执行类似的操作,除了不需要检查属性值,只需它存在.....

String pathExpression = "Groups/group[@id='"+groupId+"']/setData/data[@enabled]/text()"