Получение XML-данных Внутри пользовательской функции XPath
Вопрос
Есть ли способ получить текущие xml-данные, когда мы создадим нашу собственную пользовательскую функцию XPath (смотрите Здесь).
Я знаю, что у вас есть доступ к XPathContext
но достаточно ли этого?
Пример:
Наш XML-файл:
<foo>
<bar>smang</bar>
<fizz>buzz</fizz>
</foo>
Наш XSL:
<xsl:template match="/">
<xsl:value-of select="ourFunction()" />
</xsl:template>
Как нам получить все XML-дерево целиком?
Редактировать: Чтобы прояснить:Я создаю пользовательскую функцию, которая в конечном итоге выполняет статический Java-код (это функция Saxon).Итак, в этом Java-коде я хочу иметь возможность получать элементы из XML-дерева, такие как bar и fizz, и их CDATA, такие как smang и buzz.
Решение
Попробуйте изменить свой XSL так, чтобы вы вызывали 'ourFunction(/)'.Это должно передать корневой узел функции.Вы тоже могли бы попробовать .или..
Предположительно, вам нужно будет изменить сигнатуру реализующей функции, я позволю кому-нибудь другому помочь с этим.
Другие советы
О чем выберите текущий узел выбор соответствующих данных из текущего узла в параметр XSL и передача этого параметра функции?Нравится:
<xsl:value-of select="ourFunction($data)" />