在<xsl:for-each =“”>上使用<xsl:param =“”>不起作用

时间:2018-06-03 21:17:27

标签: javascript html xml xslt

我是职业课程的学生,我被告知要用XML制作HTML网页。我需要使用JavaScript与XSLProcessor,以及XSL。当我需要在每个上使用xsl参数时,问题就来了。目的是根据XSL获得的参数创建一个包含XML信息的表。这是我的XSL:

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="ciclo"/>
<xsl:template match="/">
<table>
  <xsl:for-each select="/ies/modulos/modulo/[ciclo=$ciclo]">
      <tr>
        <td><xsl:value-of select="./nombre"/></td>
        <td><xsl:value-of select="./horasSemanales"/></td>
      </tr>
  </xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>

这是我正在使用的XML片段:

<ies>
 <modulos>
    <modulo id="0221">
        <nombre>Montaje y Mantenimiento de equipos</nombre>
        <curso>1</curso>
        <horasSemanales>7</horasSemanales>
        <ciclo>SMR</ciclo>
    </modulo>
    <modulo id="0225">
        <nombre>Redes locales</nombre>
        <curso>1</curso>
        <horasSemanales>7</horasSemanales>
        <ciclo>ASIR</ciclo>
    </modulo>
</modulos>
</ies>

用于将参数加载到XSL的JavaScript函数工作正常,我是用xslProcessor.getParameter()检查的,并且所有HTML id都是正确的。

提前感谢您抽出时间帮助初学者。 :P

1 个答案:

答案 0 :(得分:1)

使用

select="/ies/modulos/modulo[ciclo=$ciclo]"

而不是

select="/ies/modulos/modulo/[ciclo=$ciclo]"
                           ^

因为您尝试的XPath语法不正确。