1.@* {name()} 으로 attribute 만 가져오기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<xsl:template match="//*[local-name()='Solution']"> <xsl:element name="{name()}"> <xsl:for-each select="@*"> <xsl:attribute name="{name()}"> <xsl:value-of select="."/> </xsl:attribute> </xsl:for-each> <xsl:apply-templates select="*[local-name()='SegmentRef']"/> <xsl:apply-templates select="*[local-name()='PricingInfo']"/> <xsl:apply-templates select="*[local-name()='HostToken']"/> </xsl:element> </xsl:template> <!-- template Solution/HostToken --> <xsl:template match="*[local-name()='HostToken']"> <xsl:element name="{name()}"> <xsl:for-each select="@*"> <xsl:attribute name="{name()}"> <xsl:value-of select="."/> </xsl:attribute> </xsl:for-each> <xsl:value-of select="."/> </xsl:element> </xsl:template> |
2. Copy-of 로 Node 전체 가겨오기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
<xsl:template match="*[local-name()='PricingInfo']"> <xsl:element name="{name()}"> <xsl:attribute name="PricingInfoGroup"><xsl:value-of select="position()"/></xsl:attribute> <xsl:for-each select="@*"> <xsl:attribute name="{name()}"> <xsl:value-of select="."/> </xsl:attribute> </xsl:for-each> <xsl:apply-templates select="*[local-name()='FareInfo']"/> <xsl:apply-templates select="*[local-name()='BookingInfo']"/> <xsl:apply-templates select="*[local-name()='TaxInfo']"/> <xsl:apply-templates select="*[local-name()='FareCalc']"/> <xsl:apply-templates select="*[local-name()='PassengerType']"/> <xsl:apply-templates select="*[local-name()='ChangePenalty']"/> <xsl:apply-templates select="*[local-name()='CancelPenalty']"/> <air:AirPricingModifiers FaresIndicator="AllFares"/> <xsl:apply-templates select="*[local-name()='BaggageAllowances']"/> </xsl:element> </xsl:template> <xsl:template match="*[local-name()='ChangePenalty']"> <xsl:copy-of select="."/> </xsl:template> <xsl:template match="*[local-name()='CancelPenalty']"> <xsl:copy-of select="."/> </xsl:template> <xsl:template match="*[local-name()='BaggageAllowances']"> <xsl:copy-of select="."/> </xsl:template> |