2012-11-05 30 views
2

這是問題所在。我正在將從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節點的值:PHP XSL條件語句(選擇,當,如果,否則)導致500內部服務器錯誤

<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內部服務器錯誤

任何人有任何線索可能會導致此?

在我的智慧結束!不能爲我的生活弄清楚爲什麼會發生這種情況。

+1

檢查你的apache錯誤日誌(嘗試'tail/var/log/apache/error.log')它應該包含更多關於錯誤的細節。 – Gordon

+1

檢查服務器的錯誤日誌以獲取詳細信息。例如在運行apache的系統上,將500個錯誤的原因記錄到/ var/log/httpd/error_log。 –

+0

我使用導致失敗的條件語句的另一個示例編輯了問題。 - –

回答

2

還不能評論,但我注意到你的xsl:當你有MORTGAGEDATA/PROJECT/@FHAVAApprovedCondominiumClassIndicator/@PartyType。屬性不能有屬性子項。

+0

我編輯了一個導致失敗的條件語句的另一個例子的問題。 –

0

永遠不可能知道爲什麼php 5.3升級導致這個問題,但最終解決方案是通過目錄中的.htaccess文件中的處理程序將此函數轉換回php 5。現在它完美地工作。