我需要對不同的值進行排序,但我無法使其正常工作。在XSL中使用排序
我的示例XML:
<?xml-stylesheet type="text/xsl" href="7.xsl"?>
<immobles>
<ofertes>
<oferta estat="1">Venda</oferta>
<oferta estat="2">Lloguer</oferta>
</ofertes>
<categories>
<categoria cat="A">Pis</categoria>
<categoria cat="B">Casa</categoria>
<categoria cat="C">Duplex</categoria>
</categories>
<propietaris>
<propietari dni="400001">Fernando</propietari>
<propietari dni="400004">Berta</propietari>
<propietari dni="400002">Judit</propietari>
<propietari dni="400007">Manel</propietari>
<propietari dni="400003">Pilar</propietari>
<propietari dni="400005">Jordi</propietari>
</propietaris>
<immobiliaries>
<immobiliaria codi="I1">Home sweet home</immobiliaria>
<immobiliaria codi="I2">Com a casa enlloc</immobiliaria>
<immobiliaria codi="I3">Llar de foc</immobiliaria>
<immobiliaria codi="I4">Pisos penyasegat</immobiliaria>
</immobiliaries>
<propietats>
<propietat id="1" oferta="1" propietari="400003">
<nom>Pis a l'eixample</nom>
<categoria cat="A"/>
<valorat>145000</valorat>
<preu>520</preu>
<companyies>
<companyia comp="I3" />
<companyia comp="I4" />
</companyies>
</propietat>
<propietat id="2" oferta="2" propietari="400001">
<nom>Casa moderna 4 habitacions</nom>
<categoria cat="B"/>
<valorat>358000</valorat>
<preu>350000</preu>
<companyies>
<companyia comp="I2" />
<companyia comp="I3" />
</companyies>
</propietat>
<propietat id="3" oferta="2" propietari="400002">
<nom>Duplex emmoblat lluminós</nom>
<categoria cat="C"/>
<valorat>210000</valorat>
<preu>150000</preu>
<companyies>
<companyia comp="I1" />
</companyies>
</propietat>
<propietat id="3" oferta="1" propietari="400005">
<nom>Duplex centre</nom>
<categoria cat="C"/>
<valorat>160000</valorat>
<preu>340</preu>
<companyies>
<companyia comp="I4" />
<companyia comp="I1" />
</companyies>
</propietat>
</propietats>
</immobles>
我的XSL:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html>
<body>
<table border="1">
<tr bgcolor="#9acd32">
<th>Propietat en lloguer</th>
</tr>
<xsl:for-each select="//propietat">
<xsl:variable name="idofer" select="@oferta" />
<xsl:variable name="idcat" select="categoria/@cat" />
<xsl:variable name="idpropi" select="@propietari" />
<xsl:variable name="propiofer" select="//ofertes/oferta[@estat=$idofer]" />
<xsl:variable name="propicat" select="//categories/categoria[@cat=$idcat]" />
<xsl:variable name="propipropieari" select="//propietaris/propietari[@dni=$idpropi]" />
<tr>
<xsl:choose>
<xsl:when test="$propiofer='Lloguer'">
<xsl:apply-templates select="nom">
<xsl:sort select="preu" order="ascending" />
<xsl:sort select="$propicat" order="descending" />
<xsl:sort select="$propipropietari" order="descending" />
</xsl:apply-templates>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
我需要他們preu
,categories/categoria
和propietaris/propietari
表明,在 「Lloguer」 ofertes/oferta
值和訂單。
我不知道,如果我需要使用應用模板,或者如果我可以從其他途徑
你能在這種情況下顯示你期望的輸出嗎?謝謝! –
這個想法是從'propietat/nom','categories/categoria'和'propietaris/propietari'獲取元素。我明白,我表達不好 –