2016-07-14 1 views
0

나는 노력했지만 지난 며칠간 운이 없었습니다. 내 XML에는 2 개의 중복 요소 (ELM.11)가 있습니다. 다른 이름을 (ELM.12)으로 바꾸고 싶습니다. 아래의 내용을 살펴보십시오. 미리 감사드립니다.중복 된 xml 요소의 이름을 XSLT 1.0로 바꾸는 방법은 무엇입니까?

INPUT 
<ROOT> 
    <ELM> 
     <ELM.10>ABC</ELM.10> 
     <ELM.11>001252016175000006</ELM.11> 
     <ELM.11>3796124</ELM.11> 
     <ELM.13> 
      <TS.1>20160623134857-0400</TS.1> 
     </ELM.13> 
     <ELM.14>GLB</ELM.14> 
     <ELM.15>F</ELM.15> 
    <ELM> 
</ROOT> 

EXPECT OUTPUT 
<ROOT> 
    <ELM> 
     <ELM.10>ABC</ELM.10> 
     <ELM.11>001252016175000006</ELM.11> 

     <ELM.12>3796124</ELM.12> 

     <ELM.13> 
      <TS.1>20160623134857-0400</TS.1> 
     </ELM.13> 
     <ELM.14>GLB</ELM.14> 
     <ELM.15>F</ELM.15> 
    <ELM> 
</ROOT> 
+0

내가 (당신이 그들을 지불 어쩌면 경우) 당신을 도와 드리겠습니다 여기 사람들이 확신하지만, 스택 오버플로는 코드 작성 서비스가 아닙니다. 지금까지 실제로 시도한 내용 (예 : [mcve]) – Tibrogargan

+0

을 제공해야합니다. 내가 찾고있는 한 줄의 코드로 밝혀졌습니다. 나는 stackoverflow를 코드 작성 서비스로 생각하지 않을 것이다. 2 센트 주셔서 감사드립니다. – user1998820

답변

0

질문이 약간 모호합니다. 말 그대로 읽을 경우, 대답은 매우 간단합니다 :

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 
<xsl:strip-space elements="*"/> 

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

<xsl:template match="ELM.11[2]"> 
    <ELM.12> 
     <xsl:apply-templates select="@*|node()"/> 
    </ELM.12> 
</xsl:template> 

</xsl:stylesheet> 
+0

감사합니다 Michael 그것이 작동합니다. – user1998820

관련 문제