Условный оператор 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 в каталоге. Теперь это работает отлично.

Другие вопросы по тегам