2013-04-26 2 views
0
여기

원본 XML을 발췌 한 것입니다 속성 :삽입 새로운 요소는

<text key="#OK" default="TEST"> 
     <lang id="de" value="i.O." /> 
     <lang id="en" value="OK" /> 
     <lang id="cz" value="ak" /> 
     <lang id="dk" value="OK" /> 
</text> 

내가이 문서를 변환하고 싶습니다 그래서 그 text 요소의 각 id 속성을 가진 새로운 lang 요소 "채널 내에서 텍스트 요소의 default attritbute의 내용을 가진 value 속성이 삽입됩니다.

결과는 다음과 같아야합니다

<text key="#OK" default="TEST"> 
     <lang id="de" value="i.O." /> 
     <lang id="en" value="OK" /> 
     <lang id="cz" value="ak" /> 
     <lang id="dk" value="OK" /> 
     <lang id="ch" value="TEST" /> 
</text> 

올바른 방향으로 밀어 넣기는 아주, 아주 많이 감사합니다.

답변

1

이 그것을 할 것입니다 :

샘플 입력에서 실행
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="xml" indent="yes" omit-xml-declaration="yes" /> 
    <xsl:strip-space elements="*" /> 

    <xsl:template match="@* | node()"> 
    <xsl:copy> 
     <xsl:apply-templates select="@* | node()"/> 
    </xsl:copy> 
    </xsl:template> 

    <xsl:template match="text"> 
    <xsl:copy> 
     <xsl:apply-templates select="@* | node()" /> 
     <lang id="ch" value="{@default}" /> 
    </xsl:copy> 
    </xsl:template> 
</xsl:stylesheet> 

, 결과는 다음과 같습니다

<text key="#OK" default="TEST"> 
    <lang id="de" value="i.O." /> 
    <lang id="en" value="OK" /> 
    <lang id="cz" value="ak" /> 
    <lang id="dk" value="OK" /> 
    <lang id="ch" value="TEST" /> 
</text> 
관련 문제