【问题标题】:XSL "for-each" using Javascript ID won't output anything使用 Javascript ID 的 XSL“for-each”不会输出任何内容
【发布时间】:2014-07-14 12:42:13
【问题描述】:

所以我有一个 XML、XSL 和 Javascript 文件。我不会复制整个 XML 文件,因为它太大了,但这里是有问题的代码:

<courses>
  <course>
    <c_info>
      <c_code>U65</c_code>
      <c_title>Computer Science</c_title>
    </c_info>

然后我有一个包含这些参数的 Javascript 文件

function transform(message) {
transformXML("xml_courseinfo.xml", "course_menu.xsl", "main_body", "sid", message)
}

然后在我的 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="sid" />

  <xsl:template match="/">
    <html>
      <head> 
        <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
        <title>Cross Browser Compatible Parameter Passing</title>

        <!-- javascript processor for loading the xslts with the xml-->
        <script language="javascript" type="text/javascript" src="processxml.js"></script>
      </head>
      <body>
        <div id="main_body">
          <h1>Course Main Menu</h1>
          <xsl:for-each select="courses/course/c_info[c_code=$sid]"> 
            <Strong>Course Name:</Strong> <xsl:value-of select="c_title"/> <hr /> 
          </xsl:for-each> 
        </div>
      </body>  
    </html>    
  </xsl:template>

</xsl:stylesheet>

什么都没有显示,我给了它正确的路径,课程代码 (c_code) 是唯一的,谁能帮我理解这里的问题?

提前谢谢各位!

【问题讨论】:

  • 您是否尝试在浏览器端进行 XSL 转换?如果不是,您使用的是什么服务器平台?
  • @WilliamWalseth 是的,一切都在本地完成。
  • 嗯,这可能是问题所在。它通常在服务器上完成,因此您可以在单个平台上控制转换。在浏览器中,每个 XSLT 引擎都是不同的。
  • @WilliamWalseth 我尝试了多个浏览器,不过还是感谢您的建议。
  • 试着把它拉开一点,也许首先尝试输出每门课程,然后只输出匹配 $sid 的课程。尝试在参数中强制使用默认值,如下所示,然后尝试不使用。您如何在转换函数中将 $sid 值传递给 XSL?

标签: javascript xml xslt foreach


【解决方案1】:

如果没有显示任何内容,则说明 XSLT 根本没有执行,或者您提供了错误的 $sid 值。通过让样式表输出一些常量文本,您可以轻松发现其中哪一个是正确的,例如

<h1>Transformation output for sid=<xsl:value-of select="$sid"/></h1>

【讨论】:

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