2013-11-15 3 views

ответ

0

Согласно @nwellnhof's answer, это связано с тем, что функция расширения зарегистрирована и называется меньшим количеством параметров, чем ожидалось.

В моем случае это произошло потому, что я проходил в содержимом узла, а в некоторых случаях этот узел был пуст. Раньше это было хорошо, но что-то в моей инструментальной цепочке изменилось и начало поднимать эту ошибку.

Мой исходный код выглядел что-то вроде:

<xsl:template match="foo"> 
    <xsl:value-of select="my:func(.)" /> 
</xsl:template> 

Когда foo был пуст, был поднят «Stack ошибка использования», часто группируются с ошибкой «Незарегистрированная функции». Простое исправление было соответствовать только, когда было содержание в foo, например:

<xsl:template match="foo[./*]"> 
    <xsl:value-of select="my:func(.)" /> 
</xsl:template> 
1

Кажется, что вы используете функции расширения lxml. В этом случае «Ошибка использования стека» (XPATH_STACK_ERROR внутри) происходит, когда значение стекается из стека XPath, и стек пуст. Типичным сценарием является функция расширения, называемая меньшим количеством параметров, чем ожидалось.

+0

Да, я использую 'lxml'. Недавно я обновил библиотеку libxml2 и код, который работал неделю назад, теперь полностью прекратил работу с этой единственной ошибкой, где ранее могли быть подняты другие ошибки. –

 Смежные вопросы

  • Нет связанных вопросов^_^