質問

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つは値に抽出できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top