У меня есть XML-файл, запрошенный моей веб-службой. Он содержит идентификатор сеанса в узле XML. XML-файл выглядит так:

<?xml version="1.0" encoding="utf-16"?>
<string>123-abs2g34-1231gsdfg-zcvbdf213-k2345hjksdfn31</string>

Строка 123-abs2234-1231gsdfg-zcvbdf213-k2345hjksdfn31 - это то, что я хочу установить в качестве переменной. Я должен передать эту переменную в следующий пакет, чтобы войти в свою учетную запись.

Как я могу это сделать?

Я очень признателен за помощь!

0
Ronghao 3 Авг 2017 в 22:08
Ожидаете ли вы, что выходной XML будет сгенерирован из указанного выше входного XML. Если да, поделитесь структурой выходного XML.
 – 
Aniket V
4 Авг 2017 в 07:31
Нет, я просто ожидаю строку, содержащую идентификатор сеанса, поэтому я могу установить ее как переменную. Потому что в моей следующей задаче XML я должен использовать его в качестве входных данных для запроса другого метода веб-службы.
 – 
Ronghao
4 Авг 2017 в 14:57
Вы можете преобразовать приведенный выше XML с помощью XSLT и вывести значение как text с помощью <xsl:value-of select="string"> или напрямую проанализировать XML, содержащий <string>session ID</string>, в JSON. Это преобразует XML в пару "ключ-значение", прочитает значение из JSON и передаст его следующей службе.
 – 
Aniket V
4 Авг 2017 в 15:07
Моя конечная цель - автоматизировать этот процесс, поэтому я не могу вручную преобразовать XML в JSON. И я попытался преобразовать XML с помощью XSLT, он все равно даст мне другой XML-файл, который я не могу сохранить как переменную (или я не могу сохранить только текстовую часть). Есть ли способ сохранить только строковую часть в переменной?
 – 
Ronghao
4 Авг 2017 в 21:21
Существуют парсеры XML в JSON, которые можно интегрировать в код. Вы можете найти их в Интернете. Самый грубый способ преобразовать XML в виде строки и в коде - написать условие для чтения данных между > и </ с помощью строковых функций substring.
 – 
Aniket V
5 Авг 2017 в 07:32

1 ответ

Лучший ответ

Спасибо Aniket V за помощь в решении этой проблемы. Я создал задачу XML и использовал метод Aniket V, преобразовав XML, чтобы сохранить строку в переменную. Затем я создал выражение с именем «sessionID», используя SUBSTRING( @[User::Variable],39,36), чтобы извлечь целевую строку и передать ее следующей задаче веб-службы.

0
Ronghao 7 Авг 2017 в 20:36