使用xslt对公共分离XML输入进行DVM转换



我们正在处理一些奇怪的需求,并寻求您的帮助。这是问题陈述。

作为对我们流程的请求,我们正在以的形式获得输入

<element1>A,B,C</element1>

现在,我们需要一个XSLT、DVM(SOA 11g)来转换这些值,以便像一样输出

<output>X,Y,Z</output>

我们需要在XSLT中实现这一点。

在研究create-nodeset-from-delimited-string()函数时,这里有一个纯XSLT1.0解决方案。它似乎是预言机的扩展?

该模板将使用给定的pText(例如/element1/text()),并将使用分隔字符串的每一部分作为ARG1来调用命名模板(FUNC)。

您可能需要根据需要对此进行编辑。

<xsl:template name="split">
  <xsl:param name="pText"/>
  <xsl:param name="separator" select="','" />
  <xsl:choose>
    <xsl:when test="string-length($pText) = 0"/>
    <xsl:when test="contains($pText, $separator)">
      <xsl:call-template name="FUNC">
        <xsl:with-param name="ARG1" select="substring-before($pText, $separator)"/>
      </xsl:call-template>
      <xsl:call-template name="split">
        <xsl:with-param name="pText" select="substring-after($pText, $separator)"/>
      </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
      <xsl:call-template name="FUNC">
        <xsl:with-param name="ARG1" select="$pText"/>
      </xsl:call-template>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

相关内容

  • 没有找到相关文章

最新更新