2012-12-01 1 views
0

다음 샘플 소스 XML 데이터가 있습니다. 이제 출력을 으로 가져올 필요가 있습니다. 각 일련 번호는 XSLT의 도움으로 파이프 기호로 conactinated되어있는 productNo 값과 함께 인쇄되어야합니다.XSLT를 사용하여 반복되지 않는 요소와 반복 요소를 연결합니다.

<orders> 
    <orderItems> 
     <productNo>500656-B21</productNo> 
     <serialNumber>KRW13707EV</serialNumber> 
     <serialNumber>PR9137RFRV</serialNumber> 
     <serialNumber>PR9137RFRW</serialNumber> 
     <serialNumber>PR9137RFRX</serialNumber> 
    </orderItems> 
    <orderItems> 
     <productNo>500686-B21</productNo> 
     <serialNumber>KRW13807EZ</serialNumber> 
     <serialNumber>PR9138RFRD</serialNumber> 
     <serialNumber>PR9138RFRY</serialNumber> 
     <serialNumber>PR9138RF51</serialNumber> 
    </orderItems> 
    <orderItems> 
     <productNo>500693-B26</productNo> 
     <serialNumber>KRW139075V</serialNumber> 
     <serialNumber>PR9139RFXV</serialNumber> 
     <serialNumber>PR9139RFW7</serialNumber> 
     <serialNumber>PR9139RFZ5</serialNumber> 
    </orderItems> 
</orders> 

예상 출력은 다음과 같습니다 도와

<orders> 
<serialNo>500656-B21|KRW13707EV</serialNo> 
<serialNo>500656-B21|PR9137RFRV</serialNo> 
<serialNo>500656-B21|PR9137RFRW</serialNo> 
<serialNo>500656-B21|PR9137RFRX</serialNo> 
<serialNo>500686-B21|KRW13807EZ</serialNo> 
<serialNo>500686-B21|PR9138RFRD</serialNo> 
<serialNo>500686-B21|PR9138RFRY</serialNo> 
<serialNo>500686-B21|PR9138RF51</serialNo> 
<serialNo>500693-B26|KRW139075V</serialNo> 
<serialNo>500693-B26|PR9139RFXV</serialNo> 
<serialNo>500693-B26|PR9139RFW7</serialNo> 
<serialNo>500693-B26|PR9139RFZ5</serialNo> 
</orders> 

감사합니다.

답변

1
<xsl:template match="orders"> 
    <xsl:copy> 
    <xsl:apply-templates select="orderItems/serialNumber"/> 
    </xsl:copy> 
</xsl:template> 

<xsl:template match="serialNumber"> 
    <serialNo> 
    <xsl:value-of select="concat(../productNo, '|', .)"/> 
    </serialNo> 
</xsl:template> 

<xsl:output indent="yes"/> 

으로 충분해야합니다.

관련 문제