当使用xsl:param渲染变量中的值和for循环中的using时,我无法进入for循环

时间:2011-12-05 08:40:39

标签: xslt xslt-2.0

 <p>Title: <xsl:value-of select="$section_map" /></p>

注意上面的section_map变量是打印值/form/medical-info/question-categories/question-category

现在我试图通过两种方式运行我的for循环:

第一种方式:

<xsl:for-each select="$section_map">...my code here ..</xsl:for-each>
第二种方式:

<xsl:for-each select="/form/medical-info/question-categories/question-category">...my code here ..</xsl:for-each>

当我使用第一种方式使用for循环时。它无法进入循环。

其中第二种方式正在执行。

请告诉我可能是什么问题?

请在此处找到我的xsl代码

    <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml"
    xmlns:date="http://exslt.org/dates-and-times" xmlns:str="http://exslt.org/strings">
    <xsl:output method="html" indent="yes" encoding="UTF-8"
        doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
        doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" />
    <xsl:template match="/form">
    <xsl:param name="sectionMap" select="'medical-info'"/>

        <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

            <head></head>

            <body>

<form name="myform" id="myform" method="post" action="/admin/eapp/testForm">
<xsl:variable name="section_map" select="concat('/form/',$sectionMap ,'/question-categories/question-category')"></xsl:variable>
         <p>Title: <xsl:value-of select="$section_map" /></p>
        <xsl:for-each select="$section_map">

        </xsl:for-each>

</form>
            </body>
        </html>

    </xsl:template>

</xsl:stylesheet>

1 个答案:

答案 0 :(得分:0)

section_map是一个字符串:

<xsl:variable name="section_map"
 select="concat('/form/',$sectionMap ,'/question-categories/question-category')">

您对for-each的看法如何?

也许您应该尝试select="/form/*[name()=$sectionMap]/question-categories/question-category"或其他一些?