Question

Est-il possible de réaliser la transformation suivante dans le mappeur BT? sinon, une bonne idée?

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

Je dois regrouper quelques éléments d'une liste de noeuds.

Merci à l'avance.

Était-ce utile?

La solution

Je ne sais pas beaucoup sur le mappeur BizTalk, mais le XSLT nécessaire serait assez-tout droit:

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

Autres conseils

Vous pouvez également utiliser le TableLooping / TableExtractor fonctoids dans votre carte pour construire les nœuds de destination.

Voir cet article pour un exemple:

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

Il semble que vous avez une correspondance vers l'avant droite de l'entrée à la sortie. Lorsque vous faites votre correspondance un clic droit sur la ligne tracée à partir de l'entrée à la sortie. Sélectionnez « Propriétés ». Il y a des options soit copier la valeur du nœud d'entrée ou le nom du noeud d'entrée. Vous pouvez utiliser deux applications de chaque nœud enfant, l'un pour extraire le nom et l'autre pour la valeur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top