Json XSLT1.0-将stirng反斜杠转换为双反斜杠

Json XSLT1.0-将stirng反斜杠转换为双反斜杠,json,xslt-1.0,Json,Xslt 1.0,我的xml: 电流输出为: { "Hierarchy Path"="94 \\ 72" } 问题是:当我将json格式作为“当前输出”发送时,不是有效的json格式。 如果我以“预期输出”的形式发送,那么它是一种有效的json格式。 请帮忙。提前感谢。使用XSLT1.0,您需要一种递归方法。 您可以尝试类似于此命名模板的内容 { "Hierarchy Path"="94 \ 72" } 并使用字符串调用它(例如) 使用XSLT1.0,您需要

我的xml:

电流输出为:

   {
    "Hierarchy Path"="94 \\ 72"
     }
问题是:当我将json格式作为“当前输出”发送时,不是有效的json格式。 如果我以“预期输出”的形式发送,那么它是一种有效的json格式。
请帮忙。提前感谢。

使用XSLT1.0,您需要一种递归方法。
您可以尝试类似于此命名模板的内容

   {
    "Hierarchy Path"="94 \ 72"
     }

并使用字符串调用它(例如)


使用XSLT1.0,您需要一种递归方法。
您可以尝试类似于此命名模板的内容

   {
    "Hierarchy Path"="94 \ 72"
     }

并使用字符串调用它(例如)



@hr_117@hr-117是否有办法使其对作为参数传递的任何字符有效?这样任何字符都可以逃逸。。。我尝试在模板和
中添加一个
param name=“char”
,以查看斜杠是否会被转义,但我获得了编译errors@hr_117@hr-117是否有办法使其对作为param传递的任何字符有效?这样任何字符都可以逃逸。。。我试图在模板和
中添加一个
param name=“char”
,以查看斜杠是否会被转义,但我得到了编译错误
   {
    "Hierarchy Path"="94 \ 72"
     }
<xsl:template name="jsonescape">
 <xsl:param name="str" select="."/>
  <xsl:choose>
    <xsl:when test="contains($str, '\')">
      <xsl:value-of select="concat(substring-before($str, '\'), '\\' )"/>
      <xsl:call-template name="jsonescape">
        <xsl:with-param name="str" select="substring-after($str, '\')"/>
      </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
        <xsl:value-of select="$str"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
<xsl:call-template name="jsonescape">
    <xsl:with-param name="str" select="//workorder/specifications/hpath"/>
</xsl:call-template>