【问题标题】:PHP XSL Conditional Statement (CHOOSE, WHEN, IF, OTHERWISE) Causes 500 Internal Server ErrorPHP XSL 条件语句(CHOOSE、WHEN、IF、OTHERWISE)导致 500 内部服务器错误
【发布时间】:2012-11-05 21:55:15
【问题描述】:

这就是问题所在。我正在获取从 Web 应用程序返回的返回 XML 数据,并通过 XSLT 将其处理为 HTML 供用户查看。这在我的本地 WAMP 服务器(Apache 2.2.21、PHP 5.3.8、libxml 2.7.8、libxslt 1.1.23)上完美运行。但是,当我将它加载到我的 Arvixe 托管服务器(Apache 2.2.23、PHP 5.2.17、libxml 2.7.8、libxslt 1.1.27)时,它失败了。我能够深入研究并发现 xsl 转换正在工作,直到我合并任何条件语句(选择、何时、如果、否则等),此时它会引发“500 内部服务器错误”。我检查了错误日志,没有与问题相关的内容。如果我消除所有条件语句,只显示每个 XML 节点的值:

<xsl:value-of select="MORTGAGEDATA/APPLICATION/UNDERWRITINGCASE/FHAVA/CaseTypeCD"/>

一切正常

但是如果我添加一个条件语句:

    <xsl:choose>        
        <xsl:when test="MORTGAGEDATA/APPLICATION/UNDERWRITINGCASE/FHAVA/FHAVAFieldOfficeCode = '0670'">
            <xsl:text>Tulsa, OK</xsl:text>
        </xsl:when>
        <xsl:when test="MORTGAGEDATA/APPLICATION/UNDERWRITINGCASE/FHAVA/FHAVAFieldOfficeCode = '0339'">
            <xsl:text>Washington, DC</xsl:text>
        </xsl:when>
        <xsl:when test="MORTGAGEDATA/APPLICATION/UNDERWRITINGCASE/FHAVA/FHAVAFieldOfficeCode = '0344'">
            <xsl:text>Wilmington, DE</xsl:text>
        </xsl:when>
        <xsl:otherwise>
            <xsl:text>Not Applicable</xsl:text>
        </xsl:otherwise>
    </xsl:choose>

浏览器显示 500 Internal Server Error

有人知道是什么原因造成的吗?

无计可施!无法为我的生活弄清楚为什么会这样。

【问题讨论】:

  • 检查您的 apache 错误日志(尝试tail /var/log/apache/error.log)它应该包含有关错误的更多详细信息。
  • 查看服务器的错误日志以了解详细信息。例如500 个错误的原因被记录到我运行 apache 的系统上的 /var/log/httpd/error_log 中。
  • 我用另一个导致失败的条件语句示例编辑了这个问题。 ——

标签: php xslt conditional-statements xsl-choose


【解决方案1】:

还不能发表评论,但我在你的 xsl 中注意到:当你有 MORTGAGEDATA/PROJECT/@FHAVAApprovedCondominiumClassIndicator/@PartyType 时。属性不能有子属性。

【讨论】:

  • 我用另一个导致失败的条件语句示例编辑了这个问题。
【解决方案2】:

永远无法找出 php 5.3 升级导致此问题的原因,但最终解决方案是通过目录中 .htaccess 文件中的处理程序将此函数转换回 php 5。现在它完美地工作了。

【讨论】:

    猜你喜欢
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 1970-01-01
    • 2013-08-11
    • 2012-03-29
    • 2014-04-14
    • 1970-01-01
    相关资源
    最近更新 更多