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

XSLT代码输出含多余转义字符,如何获取预期JSON数组格式?

解决方案

问题根源

你的原代码用<users>元素包裹了数组内容,后续的JSON序列化过程会把这个元素的文本内容当作字符串值处理,因此整个数组被双引号包裹,内部的引号也被自动转义,导致输出不符合预期。

直接修改现有代码(通用XSLT版本)

去掉<users>元素的包裹,直接输出JSON的键值对结构:

<xsl:text>"users": [</xsl:text>
<xsl:for-each select="ds:user_id">
  <xsl:if test="position() != 1">
    <xsl:text>,</xsl:text>
  </xsl:if>
  <xsl:text>"</xsl:text>
  <xsl:value-of select="."/>
  <xsl:text>"</xsl:text>
</xsl:for-each>
<xsl:text>]</xsl:text>

更规范的XSLT 3.0实现

如果你的环境支持XSLT 3.0,推荐使用内置的JSON生成功能,避免手动拼接字符串的繁琐和潜在错误:

<xsl:output method="json" indent="yes"/>
<xsl:template match="/">
  <xsl:map>
    <!-- 将user_id节点序列转为JSON数组 -->
    <xsl:map-entry key="'users'" select="array{ds:user_id/string(.)}"/>
  </xsl:map>
</xsl:template>

这种方式会自动处理JSON的格式规范,包括引号、逗号分隔等,无需手动控制细节。

内容的提问来源于stack exchange,提问作者jaxij

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 11:58:23