/ / Xslt सॉर्टिंग xslt में काम नहीं करता है - xml, xslt

Xslt सॉर्टिंग xslt - xml, xslt में काम नहीं करता है

मैंने XSLT का एक ब्लॉक लिखा है और मैं अपनी xml फ़ाइल को सॉर्ट करना चाहता हूं, लेकिन यह काम नहीं करता है।

मेरा XSLT:

  .....
<xsl:template match="/">
<html>
<body>
<h1>The second one that i can sort the result</h1>
<table>
<tr bgcolor="blue">
<th>Name</th>
<th>ID</th>
<th>preis</th>
<th>Lieferant</th>
</tr>
<xsl:for-each select="//lieferungen/artikel">
<tr>
<xsl:apply-templates select="name"/>
<td><xsl:value-of select="@id"/></td>
<td><xsl:apply-templates><xsl:sort select="preis" order="ascending"/</xsl:apply-templates></td>
<xsl:apply-templates select="lieferant"/>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="name">
<td><xsl:value-of select="node()"/></td>
</xsl:template>
<xsl:template match="lieferant">
<td><xsl:value-of select="node()"/></td>
</xsl:template>
</xsl:stylesheet>

और xml है:

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="C:UsersBabakDesktopXSLTsort.xslt"?>
<!-- Edited by XMLSpy® -->
<lieferungen
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:myspace:lieferungen ....">
<artikel id="3526">
<name>apfel</name>
<preis stueckpreis="true">15.97</preis>
<lieferant>Fa. Krause</lieferant>
</artikel>
...

उत्तर:

उत्तर № 1 के लिए 1

मान लें कि "आर्टिकेल" को एक्सिस डालकर ऑर्डर किया जाना चाहिए: अपने एक्सएस में पहले कथन के अनुसार क्रमबद्ध करें:

कुछ इस तरह:

<xsl:for-each select="//lieferungen/artikel">
<xsl:sort select="preis" order="ascending"/>
<tr>

</tr>
</xsl:for-each>

आपने क्या प्रयास किया:

 <td><xsl:apply-templates><xsl:sort select="preis" order="ascending"/></xsl:apply-templates></td>

काम नहीं करता है क्योंकि वर्तमान नोड पहले से ही "आर्टिकेल" है। Xsl: "आर्टिकेल" के सभी बच्चों (और विशेषताओं) के लिए आवेदन-टेम्प्लेट किया जाता है।