Привет,Инлайн Выбор выходного документа с использованием результата документ в XSLT 2.0
Я ищу способ, чтобы сделать в линии результат (выход) документ, выбрав в XSLT. Я знаю метод, в котором создается узел xsl:result-document
, чтобы одно преобразование применимо к нескольким документам. Обычно этот метод используется несколько проходов, таких как:
<xsl:template match="/">
<xsl:apply-templates select="*"/>
<xsl:result-document href="test.xml">
<xsl:apply-templates select="*"/>
</xsl:result-document>
</xsl:template>
я ищу способ сделать это инлайн, так что я могу построить два выходных документов за один проход. Причина в том, что у меня есть временное дерево, которое создается, когда выполняется преобразование, которое я хочу вывести в файл.
<xsl:variable name="treeBase">
<Base/>
</xsl:variable>
<xsl:template match="/">
<xsl:apply-templates select="*"/>
</xsl:template>
<xsl:template match="these_elements">
<xsl:param name="temp" select="$treeBase"/>
</xsl:template>
<xsl:template match="not_these_elements">
<xsl:param name="temp" select="$treeBase"/>
<xsl:apply-templates select="@*|node()">
<xsl:with-param name="temp">
<Base>
<xsl:copy-of select="$temp/Base/*"/>
<Item>
<xsl:value-of select="ThisItem"/>
</Item>
</Base>
</xsl:with-param>
</xsl:template>
Зачем вам это нужно? В моем XSLT я создаю временное дерево через рекурсивные вызовы параметров. Я хочу вывести временное дерево, поскольку оно создается для отдельного документа, но все же использует временное дерево, созданное для потока управления. С помощью текущего метода мне пришлось бы выполнить сложное преобразование дважды.
Есть ли способ сделать это в XSLT или это однопроходный, только один документ?
Заранее спасибо.