gpt4 book ai didi

java - 添加两个 xml。使用 XSLT 变压器

转载 作者:行者123 更新时间:2023-12-02 07:29:36 28 4
gpt4 key购买 nike

我正在寻找一个让我很困扰的场景的解决方案。

我正在开发 mule 3.3。

我有一些传入的 XML 和来自丰富器的第二个 XML。

现在,来自丰富器的 xml 将被添加到我的输入 XML 中。

我的流程如下所示(摘要)

<flow name="main" >
<file:inbound ....>
<enricher target="#[variable:myProperty]">
<vm:outbound .... />
</enricher>

<xslt transformer .... />
.......
.......
<file:outbound ..>
</flow>

我的 Mule Flow 部分和 XSL 如下所示

    <mulexml:xslt-transformer   maxIdleTransformers="2" maxActiveTransformers="5"   xsl-file="C:\NSBTransformerXSL.xsl" outputEncoding="UTF-8" doc:name="XSLT">


<mulexml:context-property key="RefXML" value="#[header:INVOCATION:RefXML]" />
</mulexml:xslt-transformer>

下面给出了我的 XSL

<xsl:param name="RefXML"></xsl:param>

<xsl:template match="@*|node()">
<xsl:copy >
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>

<xsl:template match="TXRequest">
<xsl:copy copy-namespaces="no" >
<xsl:apply-templates select="@* | node()"/>
<xsl:copy-of select="$RefXML"/>
</xsl:copy>
</xsl:template>

谢谢..

最佳答案

使用 XSL-T 转换器并将从丰富器获得的 XML 片段作为命名参数传递到 XSL。

这样您就可以轻松组合两个 XML。

执行此操作的正确方法是将 RefXML 解析为 DOM 元素,然后将其作为 XSL 参数传递,但是 a bug in Mule防止这种情况发生:(

因此唯一的选择是 RefXML 字符串值的逐字副本:

<xsl:value-of select="$RefXML" disable-output-escaping="yes" />

不太令人满意,但它有效。

关于java - 添加两个 xml。使用 XSLT 变压器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13092839/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com