У меня есть элемент в моем XSLT с именем profileid. Можно ожидать, что значение этого элемента будет представлять собой набор чисел, который в данный момент является целым числом (например, 452628), но это значение должно быть передано в виде строки следующему процессу. Есть ли способ преобразовать это целочисленное значение в строку внутри самого xslt? [Я использую XSLT 1.0]
XSLT, который я использовал:
<?xml version = "1.0" encoding = "UTF-8"?>
<xsl:stylesheet version = "1.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">
<xsl:output indent = "no" method = "xml"/>
<xsl:template match = "/">
<Session>
<xsl:variable name = "profileID" select = "concat(' ',$profileid)"/>
<profileId>
<xsl:value-of select = "translate($profileID,' ','')"/>
</profileId>
</Session>
</xsl:template>
</xsl:stylesheet>
(Преобразовал ответ xml в json)
Вывод JSON: -
{ "Session": { "profileId": 452628 } }
Ожидаемый результат JSON:_
{ "Session": { "profileId": "452628" } }
Способ преобразования этого целочисленного значения в строку внутри xslt
Какая у вас версия продукта WSO2? И для этого простого случая, может быть, лучше использовать payload factory
?
Я перебираю несколько записей, и xslt лучше всего подходит для этого. после создания вывода xml я устанавливаю тип сообщения как application/json, чтобы преобразовать его в вывод json.
Предполагая, что вы хотите, чтобы все атрибуты были строковыми значениями. После XSLT-преобразования установите следующее свойство с помощью JSON Transform Mediator
<jsontransform>
<property name = "synapse.commons.json.output.autoPrimitive" value = "false"/>
</jsontransform>
Опубликованный вами XSLT выводит структуру XML, но затем вы ссылаетесь на какой-то вывод JSON?