2013-07-02 4 views
0

저는 XSL을 처음 접했고 요소를 변경하고 병합하려고합니다. 나는 이것을 달성 할 수있는 방법을 모르는XSLT를 사용하여 XML 요소 변경 및 병합

<?xml version="1.0" encoding="UTF-8" ?> 
<catalog> 
    <node> 
     <Name>Paul Smith</Name> 
     <Address2>Los Angeles</Address2> 
     <Address1>New York</Address1> 
    </node> 
    <node> 
     <Name>John White</Name> 
     <Address2>Miami</Address2> 
     <Address1>San Francisco</Address1> 
    </node> 
</catalog> 

: 후

<?xml version="1.0" encoding="UTF-8" ?> 
<catalog> 
    <node> 
     <Surname>Smith</Surname> 
     <Name>Paul</Name> 
     <Address1>New York</Address1> 
     <Address2>Los Angeles</Address2> 
    </node> 
    <node> 
     <Surname>White</Surname> 
     <Name>John</Name> 
     <Address1>San Francisco</Address1> 
     <Address2>Miami</Address2> 
    </node> 
</catalog> 

: 나는 전에 인디자인

내에서 XML을 사용해야합니다. 당신의 도움이

+0

이미 시도한 것을 보여주는 XSLT가 있습니까? –

+0

아니요, 아닙니다. 이 흥미로운 사이트에 대한 많은 답변을 읽었지만 솔루션에 도달 할 수 없습니다. –

답변

0

이 XSLT는이 주소의 순서를 변경하지 않지만 당신이 무엇을해야한다에 대한

들으. 재정렬해야합니까?

<?xml version="1.0"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
<xsl:template match="/"> 
    <xsl:apply-templates /> 
</xsl:template> 
<xsl:template match="node"> 
    <node> 
     <xsl:apply-templates select="Name"/> 
     <xsl:apply-templates select="Address2"/> 
     <xsl:apply-templates select="Address1"/> 
    </node> 
</xsl:template> 
<xsl:template match="Name"> 
    <Name> 
     <xsl:value-of select="."/> 
     <xsl:text> </xsl:text> 
     <xsl:value-of select="../Surname"/> 
    </Name> 
</xsl:template> 
<xsl:template match="Surname" /> 
<xsl:template match="@*|node()"> 
    <xsl:copy> 
     <xsl:apply-templates select="@*|node()"/> 
    </xsl:copy> 
</xsl:template> 

</xsl:stylesheet> 
+0

도움 주셔서 감사합니다. 예, 재정렬해야합니다. –

+0

그런 경우 업데이트가 필요한 작업을 수행해야합니다. –

+0

:) 대단히 감사합니다! –

관련 문제