GOOGLE ADS

понедельник, 25 апреля 2022 г.

преобразовать карту json в строку в xslt

Как разобрать карту json на строку в xslt..

этот мой шаблон xslt: -

<xsl:variable name="inputJosn" select="parse-json($input)"/>
<xsl:variable name="joined-array" as="map(*)*">
<xsl:for-each-group select="$inputJosn?*" group-by="?fileName">
<xsl:map>
<xsl:map-entry key="'fileName'" select="current-grouping-key()"/>
<xsl:map-entry key="'value'" select="map{'Root':array{map{'Lines': array:join(current-group()?value?*?Root?*?Lines)}}}"/>
</xsl:map>
</xsl:for-each-group>
</xsl:variable>

здесь переменная объединенного массива — это тип карты.

поэтому, если передать переменную в функции parse-json($joined-array) и json-to-xml($joined-array), будет выдана ошибка..

An atomic value is required for the first argument of fn:parse-json(), but the supplied type is a map type, which cannot be atomized

так как преобразовать тип карты в тип строки.

 <xsl:variable name="json-array" select="parse-json($joined-array)"/>
<xsl:variable name="json-xml" select="json-to-xml($joined-array)"/>


Решение проблемы

Учитывая xsl:variable name="joined-array" as="map(*)*", что тип представляет собой последовательность карт, не совсем ясно, какое преобразование вы хотите, но вы можете сериализовать последовательность карт, например, с помощью $joined-array! serialize(., map { 'method': 'json', 'indent': true() }). Это выражение дает вам последовательность строк.

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...