我正在嘗試使用XSLT 3.0將給定的json資料從一種形式轉換為另一種。我正在使用XSLT 3.0提供的json-to-xml和xml-to-json函式來將資料從json轉換到/從xml。
我有以下json資料。
{
"id": "123456",
"result": "Success"/span>
}
我試圖用XSLT 3.0將其轉換為下面的形式
[
{
"key": "id",
"value":"123456"。
},
{
"key":"result"。
"值":"成功"。
}
]
我有以下XSLT。
<xsl:styleheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"。
version="3.0"。
xmlns="http://www.w3.org/2005/xpath-functions"/span>
xpath-default-namespace="http://www.w3.org/2005/xpath-functions"/span>
expand-text="yes"/span>>
<xsl:param name="json"/span>/>
<xsl:output method="text"/span>/>
<xsl:mode on-no-match="shallow-skip"/span>/>
<xsl: 模板 match="/" name="init">
<xsl: 變數 name="json-xml" select="json-to-xml($json)"/gt;
<xsl:variable name="transformed-js-xml"/span>>
<map>
<xsl:apply-templates select="$json-xml/map"/>
</map>
</xsl:variable>
<xsl:value-of select="xml-to-json($transformed-js-xml, map { 'indent' : true() })"/span>/>
</xsl:template>
<xsl:template match="map[string[@key = 'id'] and string[@key = 'result'] ]">
<string key="key"/span>> id</string>
<string key="value"/span>> {string[@key = 'id']}</string>。
</xsl:template>/span>
</xsl:styleheet>/span>
但是它只產生一個物件
{ "key"/span> 。 "id",
"value" : "123456"/span> }
誰能指出我需要在哪里進行修改?
uj5u.com熱心網友回復:
好吧,如果你想要一個陣列作為外部JSON結構,你需要改變
<xsl:variable name="transformed-json-xml">
<map>
<xsl:apply-templates select="$json-xml/map"/>
</map>
to
<xsl:variable name=the transformed-json-xml" >
<array>
<xsl:apply-templates select="$json-xml/map"/>
</array>
對于你的地圖,你要
<xsl: 模板 match="map[string[@key = 'id'] and string[@key = 'result']]"/span>>
<xsl:apply-templates/>
</xsl:template>/span>
plus
<xsl:template match="string">
<map>/span>
<string key="key"/span>> {@key}</string>。
<string key="value">/span>{. }</string>。
</map>。
</xsl:template>/span>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/307724.html
標籤:
