在for-each循环中进行for-each循环在XML文件中工作

时间:2015-06-17 16:57:43

标签: xml

使用此meniu.xsl文件:

<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">
            <div style="background-color:#00FF00;color:white;padding:4px">
                <span style="font-weight:bold;color:white">
                    <xsl:value-of select="laikas"/>
                </span>
                <br>&#160;</br>
            </div>
            <xsl:for-each select="patiekalas">
                <br>&#160;</br>
                <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>
                <br>&#160;</br>
            </xsl:for-each>
        </xsl:for-each>
    </body>
</html>

我可以运行这个meniu.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="meniu.xsl" ?>
   <meniu>
    <laikas>PUSRYČIAI</laikas>
    <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>
</meniu>

但是,一旦我编辑meniu.xml以将meniu标记中的所有内容加倍,就像这样:

<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="meniu.xsl" ?>
<meniu>
<laikas>PUSRYČIAI</laikas>
<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>
</meniu>
<meniu>
<laikas>PUSRYČIAI</laikas>
<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>
</meniu>

页面(meniu.xml)停止加载。如何编辑.xsl文件以便1)它加载2)我可以运行xml文件,标签内的所有内容都加倍?

我顺便看了For-each inside for-each,这有点帮助,但我无法解决我在这里描述的问题。

任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

这与XSLT无关;你的XML格式不正确。您不能拥有

形式的XML文档
<?xml version='1.0'?>
<menu>..</menu>
<menu>..</menu>

您需要添加包装元素:

<?xml version='1.0'?>
<menus>
 <menu>..</menu>
 <menu>..</menu>
</menus>