这就是问题所在。我正在从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内部服务器错误
任何人都有什么可能导致这种情况的线索?
在我的智慧结束!不能为我的生活弄清楚为什么会这样。
答案 0 :(得分:2)
无法发表评论,但我注意到你的xsl:当你有MORTGAGEDATA/PROJECT/@FHAVAApprovedCondominiumClassIndicator/@PartyType
时。属性不能包含属性子项。
答案 1 :(得分:0)
永远都不知道为什么php 5.3升级会导致这种情况,但最终解决方案是通过目录中.htaccess文件中的处理程序将此函数转换回php 5。现在它完美无缺。