views:

14

answers:

0

Hi anyone, i'm working the first time with xslt and i really don't understand why this xsl don't copy attributes from the source xml. Perhaps someone can give me a hint??

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;
   <xsl:output omit-xml-declaration="yes" indent="yes"/>
   <xsl:variable name="rpl" select="document('ParamInvoice.xml')"/>
   <xsl:template match="/">
      <xsl:copy>
         <xsl:apply-templates select="* | @*"/>
      </xsl:copy>
   </xsl:template>
   <xsl:template match="*">
      <xsl:variable name="vInvoiceElement" select="$rpl/StoraInvoice/*[name()=name(current())]"/>
      <xsl:copy>
         <xsl:if test="$vInvoiceElement/Attribute">
            <xsl:call-template name="AttributeErzeugen">
               <xsl:with-param name="pAttr" select="$vInvoiceElement/Attribute"/>
            </xsl:call-template>
         </xsl:if>
         <xsl:apply-templates/>
      </xsl:copy>
   </xsl:template>
   <xsl:template name="AttributeErzeugen">
      <xsl:param name="pAttr"/>
      <xsl:for-each select="$pAttr">
         <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
      </xsl:for-each>
   </xsl:template>
</xsl:stylesheet>