BizTalkマップ:異なるノードをリストにグループ化します
-
27-09-2019 - |
質問
BTマッパーで次の変換を達成する方法はありますか?そうでない場合、賢いアイデアはありますか?
<Person>
<Age>25</Age>
<Name>Paul</Name>
</Person>
に:
<Person>
<CustomProperties>
<CustomProperty>
<Name>Age</Name>
<Value>25</VAlue>
</CustomProperty>
<CustomProperty>
<Name>Name</Name>
<Value>Paul</VAlue>
</CustomProperty>
</CustomProperties>
ノードのリストにいくつかの要素を集約する必要があります。
前もって感謝します。
解決
Biztalk Mapperについてはあまり知らないでください。しかし、必要なXSLTはかなり簡単です。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="Person">
<xsl:copy>
<CustomProperties>
<xsl:apply-templates select="*" />
</CustomProperties>
</xsl:copy>
</xsl:template>
<xsl:template match="Person/*">
<CustomProperty>
<Name><xsl:value-of select="name()" /></Name>
<Value><xsl:value-of select="." /></Value>
</CustomProperty>
</xsl:template>
</xsl:stylesheet>
他のヒント
また、マップ内のTableLooping / TableExtractor founctoidsを使用して、宛先ノードを構築することもできます。
例については、この投稿を参照してください。
http://hestia.typepad.com/flatlander/2007/01/mapping_fixed_e.html
入力から出力への簡単なマッピングがあるようです。マッピングを行うと、入力から出力に描かれた行を右クリックします。 「プロパティ」を選択します。入力ノードの値または入力ノードの名前をコピーするオプションがあります。各チャイルドノードから2つのマッピングを使用して、1つは名前を抽出し、もう1つは値に抽出できます。
所属していません StackOverflow