Как установить переменную XSLT для точных данных xml - PullRequest
0 голосов
/ 20 октября 2010

Интересно, как хранить данные XML из одной переменной в другую.

Это работает ($ oldvariable содержит данные xml):

<xsl:variable name="newvariable" select="$oldvariable"/>

Но это не работает (возможно, по какой-то очевидной причине для опытного XSLT-кодера):

<xsl:variable name="newvariable">
 <xsl:copy-of select="$oldvariable"/>
</xsl:variable>

Как я могу заставить последний хранить точные переменные данные?

Мне нужна эта конструкция, так как я действительно использую:

<xsl:variable name="newvariable">
<xsl:choose>
 <xsl:when test="some-test">
  <xsl:copy-of select="$oldvariable"/>
...

Большое спасибо!

1 Ответ

3 голосов
/ 20 октября 2010

Это часто задаваемые вопросы: В XSLT 1.0 всякий раз, когда вы объявляете переменную / параметр с шаблоном содержимого (без @select), типом результата является Фрагмент дерева результатов.

Затем вынельзя использовать RTF в качестве левой руки для / оператора шага.

Итак, как объявить переменную как один из двух наборов узлов на основе условия?

<xsl:variable name="newvariable" select="$oldvariable[$condition]|
                                         $othernodeset[not($condition)]"/> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...