Как получить имя атрибута (при дублировании атрибута) из XML с использованием XPATH? - PullRequest
0 голосов
/ 30 мая 2019

Не могли бы вы, ребята, помочь мне в приведенном ниже сценарии, используя 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_ID и Contingent_Worker_Type_ID. Приведенный выше фрагмент кода является частью кода, просто для простоты я скопировал основной код. Значение wd:type изменится в зависимости от типа сотрудника - Сотрудник или Подходящий работник. Чтобы выбрать тип сотрудника, у меня есть единственная возможность получить имя этого атрибута.

Я видел другие вопросы с тем же сценарием, но сценария с дублирующимися атрибутами там нет. Я попробовал, как показано ниже:

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

С этим я получаю WID и Employee_Type_ID ИЛИ Contingent_Worker_Type_ID.

Понятия не имею, как я могу получить второе значение (Employee_Type_ID ИЛИ Contingent_Worker_Type_ID) для каждой ссылки на работника.

ожидаемый результат для приведенного выше фрагмента:

Employee_Type_ID
Contingent_Worker_Type_ID
...