PHP XSL条件语句(选择,如果,否则)会导致500个内部服务器错误



这是问题。我正在使用返回的XML数据,该数据将从Web应用程序返回并通过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个内部服务器错误

有人知道什么可能导致这种情况?

我的智慧结束了!我的一生无法弄清楚为什么会发生这种情况。

尚未发表评论,但是我在您的XSL中注意到:当您患有MORTGAGEDATA/PROJECT/@FHAVAApprovedCondominiumClassIndicator/@PartyType时。属性不能具有属性儿童。

永远无法确定为什么php 5.3升级引起了这一点,但最终解决了该函数,将此功能通过目录中的.htaccess文件中的处理程序转回php 5。现在它可以很好地工作。

最新更新