Получение XML-данных Внутри пользовательской функции XPath

StackOverflow https://stackoverflow.com/questions/69470

  •  09-06-2019
  •  | 
  •  

Вопрос

Есть ли способ получить текущие 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)" />
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top