2008-09-16 2 views
4

Есть ли способ получить текущие данные 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-кода (это саксонская функция). Таким образом, в этом Java-коде я хочу иметь возможность получать элементы из дерева XML, такие как bar и fizz, и их CDATA, например smang и buzz.

ответ

1

Попробуйте изменить XSL, чтобы вы назвали 'ourFunction (/)'. Это должно передать корневой узел функции. Вы также можете попробовать. или ..

Вам, вероятно, придется изменить подпись функции реализации, я позволю кому-то еще помочь с этим.

1

Как насчет выберите текущий узел , выбрав соответствующие данные из текущего узла в параметр XSL и передав этот параметр функции? Вроде:

<xsl:value-of select="ourFunction($data)" /> 
Смежные вопросы