我必须使用XSLT列出XML文档中描述的所有配方,并且该列表必须按准备时间按降序包含配方。具有相同准备时间的食谱必须按烹饪时间的降序列出。我不知道怎么做最后一部分,我甚至不确定第一部分。这是我到现在为止所拥有的:
<recipes>
<recipe>
<lunch>
<preparationTime>00:10</preparationTime>
<cookingTime>00:30</cookingTime>
<ingredients>
<ing1>Honey</ing1>
<ing2>Avocado</ing2>
<ing3>Chicken breast</ing3>
<ing4>Tomatoes</ing4>
</ingredients>
<preparationSteps>
<step1>Proin consectetur ligula eget magna placerat luctus</step1>
<step2>Donec eu sem at justo imperdiet tempor</step2>
<step3>Curabitur vitae ipsum rutrum, facilisis velit tincidunt, rhoncus turpis</step3>
<step4>Etiam maximus malesuada feugiat</step4>
</preparationSteps>
</lunch>
</recipe>
<recipe>
<desert>
<preparationTime>00:23</preparationTime>
<cookingTime>01:00</cookingTime>
<ingredients>
<ing1>Kiwi</ing1>
<ing2>Avocado</ing2>
<ing3>Apple</ing3>
<ing4>Honey</ing4>
</ingredients>
<preparationSteps>
<step1>Proin consectetur ligula eget magna placerat luctus</step1>
<step2>Praesent volutpat orci non nunc eleifend tincidunt</step2>
<step3>Morbi at est ac ligula ornare condimentum</step3>
<step4>Jaher maximus malesuada feugiat</step4>
</preparationSteps>
</desert>
</recipe>
<recipe>
<diet>
<preparationTime>00:07</preparationTime>
<cookingTime>00:00</cookingTime>
<ingredients>
<ing1>Water</ing1>
<ing2>Lemon</ing2>
<ing3>Apple</ing3>
<ing4>Tomato</ing4>
</ingredients>
<preparationSteps>
<step1>Class aptent taciti sociosqu ad litora torquent per conubia nostras</step1>
<step2> Quisque id pretium eros</step2>
<step3>Pellentesque elit velit, feugiat vel rhoncus</step3>
<step4>Vee milori malesuada feugiat</step4>
</preparationSteps>
</diet>
</recipe>
<recipe>
<dinner>
<preparationTime>00:18</preparationTime>
<cookingTime>00:11</cookingTime>
<ingredients>
<ing1>Fish</ing1>
<ing2>Lemon</ing2>
<ing3>Honey</ing3>
<ing4>Salt</ing4>
</ingredients>
<preparationSteps>
<step1>Donec eu sem at justo imperdiet tempor</step1>
<step2>Nurcas non tellus eu magna dictum hendrerit</step2>
<step3>Morbi at est ac ligula ornare condimentum</step3>
<step4>Derbis maximus malesuada feugiat</step4>
</preparationSteps>
</dinner>
</recipe>
</recipes>
和xsl:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>Recipes</h2>
<xsl:for-each select="recipes/recipe">
<ul>
<li><xsl:value-of select="lunch"></li>
<li><xsl:value-of select="preparationTime"></li>
<li><xsl:value-of select="cookingTime"></li>
<ul><xsl:value-of select="ingredients">
<li><xsl:value-of select="ing1"></li>
<li><xsl:value-of select="ing2"></li>
<li><xsl:value-of select="ing3"></li>
<li><xsl:value-of select="ing4"></li>
</ul>
<ol><xsl:value-of select="preparationSteps">
<li><xsl:value-of select="step1"></li>
<li><xsl:value-of select="step2"></li>
<li><xsl:value-of select="step3"></li>
<li><xsl:value-of select="step4"></li>
</ol>
<li><xsl:value-of select="desert"></li>
<li><xsl:value-of select="preparationTime"></li>
<li><xsl:value-of select="cookingTime"></li>
<ul><xsl:value-of select="ingredients">
<li><xsl:value-of select="ing1"></li>
<li><xsl:value-of select="ing2"></li>
<li><xsl:value-of select="ing3"></li>
<li><xsl:value-of select="ing4"></li>
</ul>
<ol><xsl:value-of select="preparationSteps">
<li><xsl:value-of select="step1"></li>
<li><xsl:value-of select="step2"></li>
<li><xsl:value-of select="step3"></li>
<li><xsl:value-of select="step4"></li>
</ol>
<li><xsl:value-of select="diet"></li>
<li><xsl:value-of select="preparationTime"></li>
<li><xsl:value-of select="cookingTime"></li>
<ul><xsl:value-of select="ingredients">
<li><xsl:value-of select="ing1"></li>
<li><xsl:value-of select="ing2"></li>
<li><xsl:value-of select="ing3"></li>
<li><xsl:value-of select="ing4"></li>
</ul>
<ol><xsl:value-of select="preparationSteps">
<li><xsl:value-of select="step1"></li>
<li><xsl:value-of select="step2"></li>
<li><xsl:value-of select="step3"></li>
<li><xsl:value-of select="step4"></li>
</ol>
<li><xsl:value-of select="dinner"></li>
<li><xsl:value-of select="preparationTime"></li>
<li><xsl:value-of select="cookingTime"></li>
<ul><xsl:value-of select="ingredients">
<li><xsl:value-of select="ing1"></li>
<li><xsl:value-of select="ing2"></li>
<li><xsl:value-of select="ing3"></li>
<li><xsl:value-of select="ing4"></li>
</ul>
<ol><xsl:value-of select="preparationSteps">
<li><xsl:value-of select="step1"></li>
<li><xsl:value-of select="step2"></li>
<li><xsl:value-of select="step3"></li>
<li><xsl:value-of select="step4"></li>
</ol>
</ul>
<!--
<xsl:sort select="substring-before(substring-after(normalize-space(NoteEnteredOn), ,' '),':') mod 12"
order="descending" data-type="number" />
<xsl:sort select="substring-before(substring-after(normalize-space(NoteEnteredOn),':'), ' ')"
order="descending" data-type="number" /> -->
</body>
</html>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:0)
您的次可完美排序为&#34; string&#34;。因此,您需要将以下xslt:sort添加到links = [record['link'] for record in reader if record['link']]
:
for-each
但是你的xslt存在一些其他问题:
<xsl:sort select="*/preparationTime" order="descending" />
<xsl:sort select="*/cookingTime" order="descending" />
可能如下所示:
for-each