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>
在 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>