Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 当XSLT变量的名称是另一个变量的值时,如何引用该变量_Xml_Xslt - Fatal编程技术网

Xml 当XSLT变量的名称是另一个变量的值时,如何引用该变量

Xml 当XSLT变量的名称是另一个变量的值时,如何引用该变量,xml,xslt,Xml,Xslt,variable1将是$variable2的值。我该怎么做?你不能。您可以这样做: <xsl:value-of select="$variable1"/> <xsl:value-of select="$variable2"/> 1. 2. 变量2: msxsl:node set是Microsoft特定的扩展,用于将片段转换为节点集。如果您使用的是非Microsoft处理器,则应该有一个等效函数可用。与大多数编程语言一样,XSLT变量名在运行时不可访问 那么,请解释您

variable1将是$variable2的值。我该怎么做?

你不能。您可以这样做:

<xsl:value-of select="$variable1"/>
<xsl:value-of select="$variable2"/>

1.
2.
变量2:

msxsl:node set
是Microsoft特定的扩展,用于将片段转换为节点集。如果您使用的是非Microsoft处理器,则应该有一个等效函数可用。

与大多数编程语言一样,XSLT变量名在运行时不可访问


那么,请解释您为什么要这样做—您试图解决什么问题—我们可以向您展示解决问题的正确方法。

xsl参数也是这样吗?@user2184503:是的,参数也是这样您为什么要这样做?当然有更好的方法来处理你的问题。请编辑问题并解释您的问题。提供源XML文档(一个小文档)和转换所需的确切结果。另外,请解释转换必须实现的任何规则/约束。
<xsl:stylesheet 
  version="1.0" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">

  <xsl:output method="xml" indent="yes"/>

  <!-- Dictionary mapping names to values -->
  <xsl:variable name="dict">
    <value name="var1">1</value>
    <value name="var2">2</value>
  </xsl:variable>

  <xsl:template match="/">
    <!-- Name of the value in 'variable1' -->
    <xsl:variable name="variable1" select="'var1'"/>
    <!-- Get the value in 'variable2' using 'variable1' -->
    <xsl:variable name="variable2" select="msxsl:node-set($dict)/value[@name=$variable1]"/>
    <root>
      <xsl:text>variable2: </xsl:text><xsl:value-of select="$variable2"/>
    </root>
  </xsl:template>

</xsl:stylesheet>