如何使用XPATH从XML获取属性名称(重复属性时)?

时间:2019-05-30 16:58:34

标签: xslt-2.0

在以下情况下,当相同节点的相同属性名称两次相同时,你们可以使用XPATH帮助我吗?

<wd:Worker_Type_Reference>
    <wd:ID wd:type="WID">be264fa6cb8b0175451b3a2012baaf10</wd:ID>
    <wd:ID wd:type="Employee_Type_ID">Permanent</wd:ID>
</wd:Worker_Type_Reference>
<wd:Worker_Type_Reference>
    <wd:ID wd:type="WID">be264fa6cb8b0157dffabd2212bab810</wd:ID>
    <wd:ID wd:type="Contingent_Worker_Type_ID">Vendor</wd:ID>
</wd:Worker_Type_Reference>

我需要获取属性的名称,即Employee_Type_IDContingent_Worker_Type_ID。上面的代码片段是代码的一部分,只是为了简化起见,我复制了主代码。 wd:type 将根据员工的类型-Employee或Contigent Worker改变。要获取员工的类型,我只有一个选项可以获取此属性名称。

我也看到了相同场景的其他问题,但是不存在重复属性场景。我尝试如下:

wd:Worker/wd:Worker_Type_Reference/wd:ID/@*[local-name()='type']

有了这个,我同时获得了WIDEmployee_Type_IDContingent_Worker_Type_ID

不知道如何为每个Worker参考获取第二个值(Employee_Type_ID或Contingent_Worker_Type_ID)。

上面的代码段的预期结果是:

Employee_Type_ID
Contingent_Worker_Type_ID

0 个答案:

没有答案