Azure Преобразование XML в JSON - PullRequest
1 голос
/ 06 марта 2019

Я пытаюсь преобразовать следующий XML-файл в JSON с помощью жидкостного сопоставления Azure, чтобы найти идентификатор сеанса.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<LogInResponse xmlns="http://tempuri.org/RLXSOAP19/RLXSOAP19">
<LogInResult>
<ExceptionCode>0</ExceptionCode>
<ExceptionDescription>No error</ExceptionDescription>
</LogInResult>
<SessionID>A VALUE</SessionID>
</LogInResponse>
</soap:Body>
</soap:Envelope>

Я пытаюсь использовать этот жидкий файл для преобразования XML, чтобы найти sessionID в JSON.

{
"Session": "{{content.soap:Envelope.soap:Body.LogInResponse.SessionID}}"
}

Это просто не возвращает значения в выводе:

{
  "Session": ""
}

Может ли кто-нибудь помочь мне с этим?

Ответы [ 2 ]

2 голосов
/ 07 марта 2019

В качестве альтернативы использованию жидкостной карты вы можете обернуть данные xml в функцию json() рабочего процесса. Заявление будет выглядеть так:

@json(xml(outputs('Mock_example_data')))['soap:Envelope']['soap:Body']['LogInResponse']['SessionID']

Эта функция xml, указанная выше, используется, поскольку действие outputs из Compose с именем Mock_example_data имеет строковую форму.

1 голос
/ 07 марта 2019

Получил ответ,

{

"Session": "{{content.Envelope.Body.LogInResponse.SessionID}}"

}
...