У меня есть следующий файл JSON, который я хотел бы преобразовать через XSLT.
[
{
"firstName": "John",
"lastName": "Andy",
"age": "15"
},
{
"firstName": "Ann",
"lastName": "Heather",
"age": "13"
}
]
и имеют следующий результат:
[
{
"firstName": "John",
"lastName": "Andy"
},
{
"firstName": "Ann",
"lastName": "Heather"
}
]
Что я делаю, это преобразовываю JSON в XML и затем манипулирую файлом, используя следующий код:
<xsl:param name="json" as="xs:string">
<xsl:template match="/*" name="xsl:initial-template">
<xsl:variable name="input-as-xml" select="json-to-xml($json)"/>
<xsl:variable name="transformed-xml" as="element(array)">
<array xmlns="http://www.w3.org/2005/xpath-functions">
<xsl:for-each select="/node()">
<map xmlns="http://www.w3.org/2005/xpath-functions">
<string key="firstName">
<xsl:value-of select="$input-as-xml//string[@key='firstName']"/>
</string>
<string key="lastName">
<xsl:value-of select="$input-as-xml//string[@key='lastName']"/>
</string>
</map>
</xsl:for-each>
</array>
</xsl:variable>
<xsl:value-of select="xml-to-json($transformed-xml)"/>
</xsl:template>
Мой вывод с использованием приведенного выше кода:
[
{
"firstName": "John Ann John Ann",
"lastName": "Andy Heather Andy Heather"
}
]
Мне понадобится некоторая помощь, чтобы изменить свой код, чтобы получить необходимую информацию в ожидаемом порядке.