【问题标题】:XSLT/XML Making a cafe menu, with 2 foreachXSLT/XML 制作咖啡馆菜单,有 2 个 foreach
【发布时间】:2014-03-07 17:08:30
【问题描述】:

基本上我一直在尝试获得如下所示的菜单:http://i.stack.imgur.com/w775Z.png (编辑 - 对代码中的语言感到抱歉,如果需要,我可以将所有内容翻译成英文)

但是使用我使用的代码,它只显示 2 条绿线 http://i.stack.imgur.com/fs1Hc.png ,省略了您可以订购的“菜肴”(在蓝绿色线中)。如果我删除第一个 foreach,它会正确放置盘子(没有绿线信息)。

我的 XML 代码:

<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="meniu.xsl" ?>
<meniu>
<laikas>
<kas>PUSRYČIAI</kas>
<patiekalas>
<pavadinimas>SUMUŠTINIAI SU SŪDYTA LAŠIŠA</pavadinimas>
<kaina>12 Lt</kaina>
<aprasymas>skrudinta balta duona, žalias padažas, alyvuogės, lašiša, citrina</aprasymas>
<kalorijos>650</kalorijos>
</patiekalas>
<patiekalas>
<pavadinimas>KAIMIŠKA KIAUŠINIENĖ</pavadinimas>
<kaina>11 Lt</kaina>
<aprasymas>kepti kiaušiniai, rūkyta šoninė, šviežios daržovės, skrudinta duona</aprasymas>
<kalorijos>880</kalorijos>
</patiekalas>
</laikas>
<laikas>
<kas>PIETŪS</kas>
<patiekalas>
<pavadinimas>SUMUŠTINIAI SU SŪDYTA LAŠIŠA</pavadinimas>
<kaina>12 Lt</kaina>
<aprasymas>skrudinta balta duona, žalias padažas, alyvuogės, lašiša, citrina</aprasymas>
<kalorijos>650</kalorijos>
</patiekalas>
</laikas>
</meniu>

我的 XSL 代码:

<?xml version="1.0" encoding="UTF-8" ?>
<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml">
<body style="font-family:Arial,helvetica,sans-serif;font-size:12pt; background-    color:#EEEEEE">
<xsl:for-each select="meniu/laikas">
<div style="background-color:green;color:black;padding:4px">
<span style="font-weight:bold;color:white"><xsl:value-of select="kas" /></span>
</div>
<xsl:for-each select="meniu/laikas/patiekalas">
<div style="background-color:teal;color:white;padding:4px">
<span style="font-weight:bold;color:white"><xsl:value-of select="pavadinimas" /></span>
<span style="margin-left:10px;font-size:10pt"><xsl:value-of select="kaina" /></span>
</div>
<div style="margin-left:20px;margin-bottom:1em;font-size:10pt"><xsl:value-of
select="aprasymas" />
<span style="font-style:italic">(<xsl:value-of select="kalorijos" /> kalorijų)
</span>
</div>
</xsl:for-each>
</xsl:for-each>
</body>
</html>

【问题讨论】:

    标签: xml xslt foreach


    【解决方案1】:

    尝试将第二个&lt;for-each /&gt;的XPath-Selector改为./patiekalas

    <xsl:for-each select="patiekalas">
    

    这是因为在第一个 &lt;for-each /&gt; 内,上下文节点是各自的 meniu/laikas

    【讨论】:

    • 哇,这速度很快,而且确实有效!非常感谢,我想我实际上做了一些正确的事情!
    • 既然我坐在这里等待将其标记为正确答案,您能否告诉我如何在蓝绿色条之间添加一点空间?
    • 嗨!我认为这是一个 CSS 问题。尝试在适用的情况下添加margin-topmargin-bottom
    猜你喜欢
    • 2012-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-13
    • 2015-08-29
    • 2022-07-25
    • 2021-12-18
    • 1970-01-01
    相关资源
    最近更新 更多