Hallo,
ich hatte hier schon im Thread https://forum.selfhtml.org/?t=155673&m=1014472 geschrieben und dies nun folgendermaßen umgesetzt:
<xsl:key name="secG" match="Gruppe" use="@ID_Gruppe"/>
<xsl:template match="Gruppen/Gruppe[@top = 'Yes']">
<xsl:value-of select="@ID_Gruppe"/>xsl:text
</xsl:text>
<xsl:apply-templates select="Elemente/Element">
<xsl:sort select="@ID_Element" data-type="number" order="ascending" />
</xsl:apply-templates>
<xsl:apply-templates select="key('secG', Elemente/Element/@ID_Element)">
<!--<xsl:sort select="//Elemente/Element[@ID_Element = current()/@name]/@name" data-type="number"/>-->
</xsl:apply-templates>
</xsl:template>
<xsl:template match="Gruppe">
xsl:text
</xsl:text>
<xsl:value-of select="@ID_Gruppe"/>xsl:text
</xsl:text>
<xsl:apply-templates select="Elemente/Element">
<xsl:sort select="@ID_Element" data-type="number" order="ascending" />
</xsl:apply-templates>
<!-- Dieser Bereich bringt teilweise Fehler -->
<xsl:apply-templates select="key('secG', Elemente/Element/@ID_Element)">
<!--<xsl:sort select="//Element[@Gruppe = current()/@name]/@name" data-type="number"/>-->
</xsl:apply-templates>
<!-- Dieser Bereich bringt teilweise Fehler -->
</xsl:template>
<xsl:template match="Elemente/Element">
<xsl:value-of select="@ID_Element"/>xsl:text
</xsl:text>
</xsl:template>
Mein Problemist nun, dass ich verschiedene .xml-Files bekomme, die inhaltlich eigentlich gleich aufgebaut sind (Struktur und DTD identisch), aber trotzdem hängt sich der Parser manchmal auf - aber eben nur manchmal.
Im DOS-Fenster steht dann:
at test3.applyTemplates()
at test3.applyTemplates()
at test3.template$dot$1()
at test3.applyTemplates()
at test3.template$dot$0()
at test3.applyTemplates()
at test3.applyTemplates()
at test3.template$dot$1()
at test3.applyTemplates()
at test3.template$dot$0()
.... (usw.)
Zur Auswertung nutze ich das Programm xml2csv.
Wenn ich aber direkt im .xml-File die Zeile <?xml-stylesheet type="text/xsl" href="test3.xsl" ?> schreibe und im IE aufrufe, kommt immer das korrekte Ergebnis.
Weiß hier jemand Rat? Kann das am Parser liegen - oder doch ein Fehler im Quelltext?
Auf jeden Fall ist es zu umständlich, jedes Mal die xsl-Anweisung in jede Datei einzutragen.
Gruß
Thomas