2016-07-14 5 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

私が探しているコードの1行であることが判明しました。私は、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