json 如何在xslt中从列表的数组中取数据

wtlkbnrh  于 2022-11-19  发布在  其他
关注(0)|答案(1)|浏览(189)

我正在使用xslt 3.0(saxon-HE v11.4库)将json转换为Java中的xml。
需要帮助以从数组中提取值
输入json示例

{
"Details":{
"name":["a","b","c"]
}
}

需要以下格式的输出

<Details>
<name indexarray="0">a</name>
<name indexarray="1">b</name>
<name indexarray="2">c</name>
</Details>
iq0todco

iq0todco1#

使用Saxon 11,您可以将带有-json:input.json等字符的JSON输入XSLT,然后匹配.[. instance of map(*)]等字符

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  version="3.0"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  exclude-result-prefixes="#all"
  expand-text="yes">
  
<xsl:output indent="yes"/>

<xsl:template match=".[. instance of map(*)]">
  <Details>
    <xsl:iterate select="?Details?name?*">
      <name indexarray="{position() - 1}">{.}</name>
    </xsl:iterate>
  </Details>
</xsl:template>
  
</xsl:stylesheet>

相关问题