Frage

Gibt es eine Möglichkeit, die folgende Transformation in dem BT-Mapper von erreichen? wenn nicht, jede kluge Idee?

<Person>
<Age>25</Age>
<Name>Paul</Name>
</Person>

zu:

<Person>
<CustomProperties>
<CustomProperty>
<Name>Age</Name>
<Value>25</VAlue>
</CustomProperty>
<CustomProperty>
<Name>Name</Name>
<Value>Paul</VAlue>
</CustomProperty>
</CustomProperties>

Ich habe ein paar Elemente in einer Liste von Knoten aggregieren.

Vielen Dank im Voraus.

War es hilfreich?

Lösung

Sie wissen nicht viel über den BizTalk-Mapper, aber die erforderliche XSLT wäre ziemlich sein straight-forward:

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

Andere Tipps

Sie können auch die TableLooping / TableExtractor Funktoide in der Karte verwenden, um die Zielknoten zu bauen.

Sehen Sie diesen Beitrag für ein Beispiel:

http://hestia.typepad.com/flatlander/2007/01 /mapping_fixed_e.html

Es sieht aus wie Sie ein straight forward-Mapping vom Eingang zum Ausgang haben. Wenn Sie Ihre Zuordnung zu tun klicken Sie rechts auf der Linie vom Eingang zum Ausgang gezogen. Wählen Sie „Eigenschaften“. Es gibt Optionen, um entweder Kopie den Wert des Eingangsknotens oder den Namen des Eingangsknotens. Sie können zwei Abbildungen von jedem Kind-Knoten verwenden, einen Namen und einen für den Wert zu extrahieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top