WSO2 中 xslt 处理器的问题

Problems wits xslt processor in WSO2

在 wso2 esb 4.9.0 中,我定义了下一个 xslt 调解器:

<localEntry key="TestXslt">
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">            
        <xsl:param name="param1">
            <FileList>
                <File Name="b" automated="false" valid="true"/>
                <File Name="c" automated="false" valid="true"/>
                <File Name="d" automated="false" valid="true"/>
                <File Name="e" automated="false" valid="true"/>
                <File Name="f" automated="false" valid="true"/>
            </FileList>
        </xsl:param>
        <xsl:output indent="yes"/>
        <xsl:template match="/">
                <xsl:for-each select="$param1/FileList/File">
                    <qq>TEST</qq>
                </xsl:for-each>
        </xsl:template>
    </xsl:stylesheet>
    <description/>
</localEntry>

这个 xslt 应该创建 5 个 xml 标签。预期输出:

<qq>TEST</qq>
<qq>TEST</qq>
<qq>TEST</qq>
<qq>TEST</qq>
<qq>TEST</qq>

但是当我调用这个 xslt 调解器时,我的消息是空的。 我可能做错了什么。也许我应该激活 XSLT 2.0。我该怎么做?

在 WSO2 中,你通过 xslt 中介传递给 TestXslt 的参数变成了一个字符串。

为什么你不能使用当前的有效负载消息,你想做什么?

如果您需要当前消息的 XML 有效负载 + 另一个 xml 源(例如从注册表加载)到您的 xsl 中,您可以将此 xml 片段添加到当前调用 xslt 调解器之前的消息。使用丰富的调解器示例:

<enrich>
  <source clone="true" xpath="get-property('some_external_xml')"/>
  <target type="body" action="child"/>
</enrich>