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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.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 xpath中xsl参数的用法_Xml_Xslt_Xpath_Vxml - Fatal编程技术网

Xml xpath中xsl参数的用法

Xml xpath中xsl参数的用法,xml,xslt,xpath,vxml,Xml,Xslt,Xpath,Vxml,我将参数数组$gen定义为: <xsl:variable name="inline-array"> <item>western</item> <item>Romance</item> <item>Adventure</item> <item>Drama</item> <item>Comedy</item> <it

我将参数数组
$gen
定义为:

<xsl:variable name="inline-array">
    <item>western</item>
    <item>Romance</item>
    <item>Adventure</item>
    <item>Drama</item>
    <item>Comedy</item>
    <item>Horror</item>
    <item>Action</item>
</xsl:variable>
<xsl:param name="gen" select="document('')/*/xsl:variable[@name='inline-array']/*"/>
当我使用
$gen2
而不是“浪漫”或其他字符串时,它无法选择值。但是
cond=“MovieSummary=='{$gen[1]}'”
运行良好。 它只能生成以下内容:

  <if cond="MovieSummary == 'western'">`enter code here`
    <prompt>Range Feud. 
    Clint Turner is arrested for the murder of his girlfriend Judy's      
    father, a rival rancher who was an enemy of his own father.
    </prompt>
    <elseif cond="MovieSummary == 'Romance'"/>
    <prompt>. </prompt>
     <else/>
  </if>
全部失败。

指令:

<xsl:for-each select="$gen[position()>1]">
不选择任何内容,因为
/
从当前文档的根开始,但
类型
位于另一个文档中

您需要将上下文更改回已处理的XML文档,以便处理其中的节点


注意:在XSLT 2.0中,
key()
函数可以直接选择另一个文档中的节点,而不改变整个上下文。

您发布的大部分代码都不可见。对其进行格式化,使其可见。我不确定您是否提供了足够的数据来处理。请发布一个完整的、可复制的示例(包括输入),并说明是否使用XSLT 1.0或2.0。@Mayco除非您发布一个.@michael.hor257k:好答案,否则我无法进一步帮助您。能否提供一个将上下文更改回当前/已处理文档的示例?我的意思是:将当前处理的节点的上下文从
文档(“”)/…
更改回当前文档的方法?@zx485更改上下文的方法只有两种。在OP提供输入示例后,我将提供一个示例。我将指令更改为****并更改提示上下文。它起作用了!非常感谢。
select ="//genre[.=$gen2]/../summary"; 
select ="//genre[.={$gen2}]/../summary"; 
select ="//genre[.='{$gen2}']/../summary"
<xsl:for-each select="$gen[position()>1]">
<xsl:value-of select ="//genre[.='$gen2']/../title"/>