You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在XSLT的map-entry中指定null值以生成对应JSON

生成含null值的JSON对象的XSLT正确实现方法

要生成{"foo": null}这样的JSON结构,你可以用以下两种标准XSLT 3.0的实现方式——不存在xsl:null这个标准指令,你之前看到的<null key="foo"/>是非标准写法,所以会报错。

方法一:使用XPath map构造语法

直接通过XPath的map字面量语法,结合xs:null()函数生成空值,再输出即可:

<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xsl:output method="json" indent="yes"/>
  
  <xsl:template match="/">
    <xsl:sequence select="map { 'foo' : xs:null() }"/>
  </xsl:template>
</xsl:stylesheet>

方法二:使用xsl:map搭配xsl:map-entry

在xsl:map-entry的select属性中调用xs:null()函数来指定空值:

<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xsl:output method="json" indent="yes"/>
  
  <xsl:template match="/">
    <xsl:map>
      <xsl:map-entry key="'foo'" select="xs:null()"/>
    </xsl:map>
  </xsl:template>
</xsl:stylesheet>

关键说明

  • xs:null()是XPath 3.1引入的标准函数,专门用于创建对应JSON null的空值,序列化后会自动转为JSON的null。
  • 确保你的XSLT处理器支持XSLT 3.0和XPath 3.1(比如Saxon-HE 9.8及以上版本),低版本处理器可能不支持这些语法。

内容的提问来源于stack exchange,提问作者MrD at KookerellaLtd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 15:15:01