【问题标题】:Using <xsl: param> on <xsl: for-each> doesn't work在 <xsl: for-each> 上使用 <xsl: param> 不起作用
【发布时间】:2018-06-03 21:17:27
【问题描述】:

我是一名职业课程的学生,有人告诉我用 XML 制作 HTML 网页。我需要你将 JavaScript 与 XSLProcessor 以及 XSL 一起使用。当我需要在 for each 上使用 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

【问题讨论】:

  • 你被告知出了什么问题,但你很幸运:为了将来参考,你的问题说它“不起作用”,但它没有提供关于它如何失败的线索。给出故障症状通常是解决问题的先决条件。

标签: javascript html xml xslt


【解决方案1】:

使用

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

而不是

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-30
    • 2015-12-16
    • 2012-10-11
    • 1970-01-01
    • 2016-09-15
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    相关资源
    最近更新 更多