Announcement

Collapse
No announcement yet.

Probleme bei der Umwandlung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme bei der Umwandlung

    Hallo,

    Irgendwie stehe ich vor dem Problem, dass XSLT keine Zähler unterstützt.
    Das ist mein XML-File:
    Code:
    <wurzel>
    <a>1</a>
    <b>a1</b>
    <b>a2</b>
    <b>a3</b>
    <c>abc</c>
    Jetzt soll mein XSLT-File das in ein anderes XML-File umwandeln, das so aussieht:
    Code:
    <wurzel a="1" b1="a1" b2="a2" b3="a3" c= "abc"/>
    Das mit dem Zähler bekomme ich aber nicht hin.
    Hat sowas schon mal jemand gemacht?

    Danke für eure Hilfe.

    Gruß Dörk

  • #2
    Dazu ist schon etwas "Feintuning" nötig, probiere im konkreten Fall diesen Ansatz:

    Code:
    <xsl:template match="wurzel">
    
      <xsl:element name="{local-name()}">
    
        <xsl:for-each select="*">
    
          <xsl:variable name="ln" select="local-name()"/>
          <xsl:variable name="c1" select="count(preceding-sibling::*[local-name()=$ln])"/>
          <xsl:variable name="c2" select="count(following-sibling::*[local-name()=$ln])"/>
          <xsl:variable name="attr_name">
            <xsl:choose>
              <xsl:when test="$c1=0 and $c2=0">
                <xsl:value-of select="local-name()"/>
              </xsl:when>
              <xsl:otherwise>
                <xsl:value-of select="concat(local-name(),$c1+1)"/>
              </xsl:otherwise>
            </xsl:choose>
          </xsl:variable>
    
          <xsl:attribute name="{$attr_name}"><xsl:value-of select="."/></xsl:attribute>
    
        </xsl:for-each>
    
      </xsl:element>
    
    </xsl:template>
    Zuletzt editiert von Thomas Meinike; 01.04.2008, 19:04.

    Comment


    • #3
      Hi,

      Danke für die Hilfe.
      Hat super funktioniert :-)

      Gruß Dörk

      Comment

      Working...
      X