2009-10-19 5 views
1

Je suis en train de faire une cartographie avec ce xml:Mapping avec BizTalk + noeuds multiples à un seul

<rootxml> 
    <documents> 
    <document> 
     <iddoc>1</iddoc> 
     <total_price>1000</total_price> 
    </document> 
    </documents> 
    <items> 
    <item> 
     <iddoc>1</iddoc> 
     <iditem>1</iditem> 
     <quantity>1</quantity> 
     <price>800</price> 
    </item> 
    <item> 
     <iddoc>1</iddoc> 
     <iditem>2</iditem> 
     <quantity>1</quantity> 
     <price>200</price> 
    </item> 
    </items> 
    <taxes> 
    <tax> 
     <iddoc>1</iddoc> 
     <iditem>1</iditem> 
     <idtax>1000</idtax> 
     <value>123.90</value> 
    <tax> 
    <tax> 
     <iddoc>1</iddoc> 
     <iditem>2</iditem> 
     <idtax>1000</idtax> 
     <value>34.13</value> 
    <tax> 
    </taxes> 
</rootxml> 

à celui-ci:

<resultxml> 
    <documento> 
    <iddoc>1</iddoc> 
    <total_price>1000</total_price> 
    <items> 
     <item> 
     <iddoc>1</iddoc> 
     <iditem>1</iditem> 
     <quantity>1</quantity> 
     <price>800</price> 
     <taxes> 
      <idtax>1000</idtax> 
      <value>123.90</value> 
     </taxes> 
     </item> 
     <item> 
     <iddoc>1</iddoc> 
     <iditem>2</iditem> 
     <quantity>1</quantity> 
     <price>200</price> 
     <taxes> 
      <tax> 
      <idtax>1000</idtax> 
      <value>34.13</value> 
      <tax> 
     </taxes> 
     </item> 
    </items> 
    </documento> 
</resultxml> 

Je ne peux pas savoir comment pour résoudre cela. Bien que le document xml original puisse avoir plusieurs documents, il en aura toujours un, je dois donc fusionner les éléments dans celui-ci et les taxes dans son élément respectif.

Merci

Répondre

1

Je pense que vous devrez écrire un morceau de coutume XSLT. Parcourez les éléments/éléments, puis créez un xpath vers taxes/taxes [où iditem = $ itemId]. L'astuce consiste à obtenir le premier itemId dans la variable.

Désolé, j'ai un temps limité maintenant, ne peut pas créer une démo de travail complète pour vous. est ici la question connexe j'ai eu un certain temps: http://www.stylusstudio.com/ssdn/default.asp?action=9&fid=48&read=7896

Neal Walters

Questions connexes