2016-11-28 2 views
0

:私は、XSLTを使用して、次のように出力したいxsltを使用してノード内にxmlのコピーを作成する方法はありますか?私はこのようなXML持っ

<p> 
        <p1>DISTRIBUTOR</p1> 
        <p2>f</p2> 
        <p3>us</p3> 
        <p4>5</p4> 
        <c> 
        <c1>SOCIAL_MEDIA</c1> 
        <c2>www.facebook.com</c2> 
        <c3>facebook</c3> 
        </c> 
        <c> 
        <c1>EMAIL</c1> 
        <c2>www.gmail.com</c2> 
        <c3>gmail</c3> 
        </c> 
       </p> 

を、それは基本的にその部分のコピーを作成します

 <p> 
      <p1>DISTRIBUTOR</p1> 
      <p2>f</p2> 
      <p3>us</p3> 
      <p4>5</p4> 
      <c> 
       <p1>DISTRIBUTOR</p1> 
      <p2>f</p2> 
      <p3>us</p3> 
      <p4>5</p4> 
      <c1>SOCIAL_MEDIA</c1> 
      <c2>www.facebook.com</c2> 
      <c3>facebook</c3> 
      </c> 
      <c> 
       <p1>DISTRIBUTOR</p1> 
      <p2>f</p2> 
      <p3>us</p3> 
      <p4>5</p4> 
      <c1>EMAIL</c1> 
      <c2>www.gmail.com</c2> 
      <c3>gmail</c3> 
      </c> 
     </p> 

誰も私を助けることができます... コピーする要素に配列作成を使ってみましたが、出力が混乱してしまいました。

答えて

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

<xsl:template match="c">  
    <xsl:copy> 
     <xsl:copy-of select="/p/node()[starts-with(name(), 'p')]"/> 
     <xsl:apply-templates select="node()|@*"/> 
    </xsl:copy> 
</xsl:template> 
+0

ありがとうございました – divya

+0

答えとしてマークしてください。 –

関連する問題