Условный оператор PHP XSL (CHOOSE, WHEN, IF, OTHERWISE) вызывает 500 внутренних ошибок сервера
Здесь проблема. Я беру возвращенные данные XML, которые возвращаются из веб-приложения, и обрабатываю их в HTML через XSLT, чтобы пользователь мог их увидеть. Это работает безупречно на моем локальном сервере WAMP (Apache 2.2.21, PHP 5.3.8, libxml 2.7.8, libxslt 1.1.23). Однако, когда я загружаю его на свой сервер Arvixe Hosted (Apache 2.2.23, PHP 5.2.17, libxml 2.7.8, libxslt 1.1.27), происходит сбой. Мне удалось развернуть и обнаружить, что преобразование xsl работает, пока я не включу какой-либо условный оператор (выберите, когда, если, иначе и т. Д.), И в этот момент он выдаст "500 Internal Server Error". Я проверил журналы ошибок, и нет ничего, связанного с проблемой. Если я исключу все условные операторы и выведу только значения каждого узла 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 внутренних ошибок сервера
У кого-нибудь есть подсказка, что может вызвать это?
На моем конце ума! Не могу за всю жизнь понять, почему это происходит.
2 ответа
Пока не могу комментировать, но я замечаю в вашем xsl: когда у вас есть MORTGAGEDATA/PROJECT/@FHAVAApprovedCondominiumClassIndicator/@PartyType
, Атрибуты не могут иметь атрибуты дочерних элементов.
Никогда не мог выяснить, почему обновление php 5.3 вызвало это, но в итоге было решено перевести эту функцию обратно в php 5 через обработчики в файле.htaccess в каталоге. Теперь это работает отлично.