如果我有这样一个XML格式的查找表:选择基于节点的其他文档中值的节点
<lookup>
<element key='abc'>Hello</element>
</lookup>
而且这样的另一个XML文件:
<root>
<child key='abc'>Goodbye</child>
</root>
我为此XSL转换的第一个文件加载到一个变量之后:
<xsl:variable name="myvar" select="document('lookupfile.xml')/lookup" />
<xsl:value-of select="$myvar/element[@key=/root/child/@key]" />
我要的是价值“你好”来了,但我而我什么也得不到。我不允许直接比较两个节点的值吗?我看到的每个示例始终将[@key ='hardCodedValue']与其他节点的值进行比较。如果我硬编码的值如下所示:select =“$ myvar/element [@key ='abc']它返回'Hello'。如果我直接输出root/child键值为select =”/ root/child/@ key“我得到正确的'abc'值,它正好在我试图做上面的比较时,它什么也没有返回
什么'$ myvar'的定义是什么? – 2014-11-05 18:35:55
我编辑它以包含定义。 – 2014-11-05 18:42:01
请发布可用于重现问题的**完整**示例。您的代码脱离了上下文 - 上下文在XPath/XSLT中非常重要。 – 2014-11-05 18:48:36