Мне нужно ввести в переменную внутреннюю структуру узла, проблема в том, что у узла разные пути по разным причинам.То, что я делаю до сих пор, это
<xsl:variable name="my_variable">
<xsl:choose>
<xsl:when test="One/Path/To/TheNode">
<xsl:value-of select="One/Path/To/TheNode"/>
</xsl:when>
<xsl:when test="One/Different/Path/To/TheNode">
<xsl:value-of select="One/Different/Path/To/TheNode"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="//TheNode"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
И затем, если я использую эту переменную для получения некоторого подузла:
<xsl:variable name="other_variable" select="$my_variable/Subnode"/>
Я получаю эту ошибку во время выполнения XPath error : Invalid type Evaluating global variable var/param being computed failed
, я пыталсятоже при этом:
<xsl:variable name="other_variable" select="ext:node-set($my_variable)/SubNode"/>
Я не получаю никакой ошибки при выполнении xslt, но other_variable
пусто.Проверка содержимого my_variable
делает <xsl:value-of select="$my_variable"/>
или <xsl:apply-templates mode="copy" select="ext:node-set($my_variable)"/>
Я могу видеть данные, но без структуры XML, я имею в виду, я могу видеть bar
, но не <foo>bar</bar>
.
Есть ли какой-либо способчтобы получить эту структуру из другого пути без использования <xsl:variable name="my_variable" select="//TheNode"/>
??
Спасибо.