2010-04-16 3 views
3

BT 매퍼에서 다음과 같은 변환을 수행 할 수 있습니까? 그렇지 않다면, 똑똑한 아이디어?BizTalk 맵 : 다른 노드를 목록으로 그룹화

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

나는 노드 목록에 몇 가지 요소를 통합 할 수 있습니다.

미리 감사드립니다.

답변

2

이는 BizTalk 매퍼에 대해 잘 모르겠지만, 필요한 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> 
0

것 같습니다. 입력에서 출력으로 그린 ​​선을 마우스 오른쪽 버튼으로 클릭하여 매핑하십시오. "속성"을 선택하십시오. 입력 노드의 값이나 입력 노드의 이름을 복사하는 옵션이 있습니다. 각 하위 노드에서 두 개의 매핑을 사용할 수 있습니다. 하나는 이름을 추출하고 다른 하나는 값을 추출합니다.