Domanda

C'è un modo per ottenere la seguente trasformazione nel mapper BT? se non, qualche idea intelligente?

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

a:

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

Devo aggregare alcuni elementi di una lista di nodi.

Grazie in anticipo.

È stato utile?

Soluzione

Non so molto circa il mapper di BizTalk, ma la richiesta XSLT sarebbe abbastanza 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>

Altri suggerimenti

È anche possibile utilizzare il TableLooping / functoid TableExtractor nella mappa per costruire i nodi di destinazione.

Si veda questo post per un esempio:

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

Sembra che si dispone di una mappatura dritto in avanti tra ingresso e uscita. Quando si esegue la mappatura tasto destro del mouse sulla linea tracciata dall'ingresso all'uscita. Selezionare "Proprietà". Ci sono opzioni per copiare il valore del nodo di input o il nome del nodo di ingresso. È possibile utilizzare due mappature da ciascun nodo figlio, uno per estrarre il nome e uno per il valore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top