2016-07-14 74 views
0

過去幾天我一直在努力但沒有運氣。我在我的XML中有2個重複元素(ELM.11)。我想重新命名爲(ELM.12)。請看下面的輸入。提前致謝。如何用XSLT 1.0重命名重複的xml元素?

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

謝謝邁克爾它的作品。 – user1998820