Announcement

Collapse
No announcement yet.

nach Nummer sortieren

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

  • nach Nummer sortieren

    ich möchte die loops nach Nummer sortieren,
    <DATA>
    <loop_no>1001.01</loop_no>
    <pipe_no>10</pipe_no>
    </DATA>
    <DATA>
    <loop_no>1002.01</loop_no>
    <pipe_no>10</pipe_no>
    </DATA>
    <DATA>
    <loop_no>1001.02</loop_no>
    <pipe_no>10</pipe_no>
    </DATA>
    <DATA>
    <loop_no>1003.01</loop_no>
    <pipe_no>10</pipe_no>
    </DATA>
    <DATA>
    <loop_no>1002.02</loop_no>
    <pipe_no>10</pipe_no>
    </DATA>


    Die richtige Reihenfolge nach Transformation wäre:
    <loops>
    <loop>
    <loop_no>1001.01</loop_no>
    <pipe_no>10</pipe_no>
    </loop>
    <loop>
    <loop_no>1001.02</loop_no>
    <pipe_no>10</pipe_no>
    </loop>
    <loop>
    <loop_no>1002.01</loop_no>
    <pipe_no>10</pipe_no>
    </loop>
    <loop>
    <loop_no>1002.02</loop_no>
    <pipe_no>10</pipe_no>
    </loop>
    <loop>
    <loop_no>1003.01</loop_no>
    <pipe_no>10</pipe_no>
    </loop>
    </loops>

    Ich habe xsl geschrieben
    <xsl:template match="/">
    <xsl:copy>
    <xsl:element name="loops" namespace="">
    <xsl:apply-templates select="DATA">
    <xsl:sort select="DATA/loop_no" order="descending" data type="number"/>
    </xsl:apply-templates>
    </xsl:element>
    </xsl:copy>
    </xsl:template>

    <xsl:template match="DATA">
    ..........

    Aber es funktioniert nicht, was soll ich änderen?
    Danke!

  • #2
    Hi,

    mal so auf die Schnelle:

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="index.xslt"?>
    <loops>
    <DATA>
    <loop_no>1001.01</loop_no>
    <pipe_no>10</pipe_no>
    </DATA>
    <DATA>
    <loop_no>1002.01</loop_no>
    <pipe_no>10</pipe_no>
    </DATA>
    <DATA>
    <loop_no>1001.02</loop_no>
    <pipe_no>10</pipe_no>
    </DATA>
    <DATA>
    <loop_no>1003.01</loop_no>
    <pipe_no>10</pipe_no>
    </DATA>
    <DATA>
    <loop_no>1002.02</loop_no>
    <pipe_no>10</pipe_no>
    </DATA>
    </loops>


    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xslutput version="1.0" method="xml" encoding="UTF-8" indent="yes"/>
    <xsl:template match="/">
    <loops>
    <xsl:for-each select="loops/DATA">
    <xsl:sort data-type="number" order="ascending" select="loop_no" />
    <loop>
    <loop_no><xsl:value-of select="loop_no"/></loop_no>
    <pipe_no><xsl:value-of select="pipe_no"/></pipe_no>
    </loop>
    </xsl:for-each>
    </loops>
    </xsl:template>
    </xsl:stylesheet>

    Herzlichst
    Dirk Einecke

    Comment

    Working...
    X