javascript - 使用 <xsl : param> on <xsl: for-each> doesn't work

标签 javascript html xml xslt

我是一名职业类(class)的学生,我被告知要利用 XML 制作 HTML 网页。我需要将 JavaScript 与 XSLProcessor 以及 XSL 一起使用。当我需要在 foreach 上使用 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

最佳答案

使用

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

而不是

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

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

关于javascript - 使用 <xsl : param> on <xsl: for-each> doesn't work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50671059/

相关文章:

C# XML 按键值选择字典节点

javascript - jQuery 实时验证不起作用

javascript - 针对爬虫和机器人的 HTML 5 存储

javascript - 这个脚本发生了什么

html - 如何将一个div设置为嵌套在另一个div中并填充父div并自动调整高度和重量

javascript - .js 未应用于 ng-view

xml - 用于 xls 转换的 Excel VBA 编码以及参数

xml - 使用父 XML 元素作为重复出现的子元素的容器?

javascript - paypal 快速结帐重新呈现

javascript - JavaScript TextNode更新