0

私を悩ませているシナリオの解決策を探しています。

私はミュール3.3に取り組んでいます。

入力 XML と、エンリッチャーからの 2 つ目の 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>

ありがとう..

4

3 に答える 3

2

XSL-T トランスフォーマーを使用して、エンリッチャーから取得した XML フラグメントを名前付きパラメーターとして XSL に渡します。

そうすれば、2 つの XML を簡単に組み合わせることができます。

これを行う正しい方法はRefXML、DOM 要素として解析し、それを XSL パラメータとして渡すことですが、Mule のバグによりこれが妨げられています :(

したがって、唯一のオプションは、の文字​​列値の逐語的なコピーですRefXML

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

非常に満足のいくものではありませんが、機能します。

于 2012-10-26T20:02:54.960 に答える
0

あなたの質問や問題が何であるかは明らかではありません。2 つの xml を組み合わせるのに苦労していると思います。

この場合、Datamapper を使用することをお勧めします -http://www.mulesoft.org/documentation/display/MULE3STUDIO/DataMapper+Transformer+Reference

あなたの質問を具体的にしようとすると、人々はあなたが作業しているラバのバージョンを尋ねるのが好きです. (この投稿をコメントとして入れたいです)

于 2012-10-26T19:22:33.013 に答える
0

saxon:parse 拡張機能を使用することもできます。以下は私にとってはうまくいきます:

<xsl:param name="RefXMLIn"/>
<xsl:variable name="RefXML" select="saxon:parse($RefXMLIn)" xmlns:saxon="http://saxon.sf.net/"/>

XML をテキストとして受け取るパラメーターの名前を変更し、元の変数に解析関数の結果を入力します。

この拡張機能は Saxon 固有ですが、Saxon は Mule に付属するデフォルトの XML ライブラリです。

于 2014-03-19T10:38:27.473 に答える