XSLT

2016-03-23 28 views
0

'daki tüm özellikleri seçin ve işleyin Değerleri iletmek için öznitelikleri kullanan dış sistemden XML alıyorum.XSLT

Ben değeri ile gerçek etiketine her öznitelik dönüştürmek zorunda bu giriş işlemek amacıyla
<declaratieUnica luna_r="01" nume_declar="aaa" prenume_declar="bbb"> 
    <employer cif="1111" caen="0116"> 
</declaratieUnica> 

, örneğin, yukarıdaki parçası haline gelmelidir:

<declaratieUnica> 
    <luna_r>01</luna_r> 
    <nume_declar>aaa</nume_declar> 
    <prenume_declar>bbb</prenume_declar> 
    <employer> 
     <cif>1111</cif> 
     <caen>0116</caen> 
</declaratieUnica> 

ı don İşte fragmandir önceden ne nitelik, ne isimlerini bile bilmiyorum. XSLT'de söylenecek genel bir yol var mı: "tüm nitelikleri değerlerle etiketlere dönüştür"?

cevap

1

Bir başlatıcı olarak aşağıdaki stil kullanabilirsiniz:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

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

    <xsl:template match="@*"> 
     <xsl:element name="{name()}"> 
      <xsl:value-of select="."/> 
     </xsl:element> 
    </xsl:template> 

</xsl:stylesheet> 

Girdi belgenin basit özyinelemeli kopyasıdır. İkinci şablon tüm özellik düğümleriyle eşleşir ve bunları öğelere dönüştürür.