2016-11-28 19 views
0

これはソースコードXSLT変換

<data t1="a" t2="b" t3="c"> 
     <name ans="d">xyz</name> 
    </data> 

である私は

<info name="a"> 
    <info name="b"> 
     <info name="c"> 
      <answer name="d">xyz</answer> 
     </info> 
    </info> 
</info> 

を取得したいが、私はこれについて、深刻な問題を抱えています。

私はあなたの単一の例では、ルールを提供していません

<xsl:template match="*/*"> 
    <info> 
     <xsl:element name="{node-name(.)}"> 
      <info> 
      <xsl:for-each select="*/item"> 
       <xsl:element name="{node-name(..)}"> 
        <xsl:copy-of select="./*" /> 
       </xsl:element> 
      </xsl:for-each> 
      </info> 
     </xsl:element> 
    </info> 
    </xsl:template> 

答えて

1

を試してみました、次のXSL。次のスタイルシートは、期待される結果を提供しますが、それは単なる偶然かもしれない:動作しません

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="*"/> 

<xsl:template match="/data"> 
    <info name="{@t1}"> 
     <info name="{@t2}"> 
      <info name="{@t3}"> 
       <xsl:apply-templates/> 
      </info> 
     </info> 
    </info> 
</xsl:template> 

<xsl:template match="name"> 
    <answer name="{@ans}"> 
     <xsl:value-of select="."/> 
    </answer> 
</xsl:template> 

</xsl:stylesheet> 
+0

。私はsimiler approchを試してみました...一度私は/ xを使用すると、私はちょうどすべての情報を取得し、タグではなく/を使用する場合は、後に /。 :( – itsMe

+0

@gourabalamあなたはそれがここで働いているのを見ることができます:http://xsltransform.net/pPJ8LVp –

+0

wow ...私はどこに問題があるのか​​わかりません...私のJavaをチェックする必要があります。 – itsMe