问题

我本来会认为这对谷歌来说是一件容易的事情,但我一直没有成功。

我想从属性中分配值(简单到目前为止),然后使用该变量根据该属性的值选择另一个节点.

例:

 <xsl:variable name="myId" select="@id" />
<xsl value-of select="//Root/Some/Other/Path/Where[@id='{@myId}']/@Name />
 

这不起作用.如果我用变量中的值替换{@myId},那么它确实找到了正确的节点,但这样做不会产生任何东西.我确信我错过了一些东西,或者可能有一种不同的方法来做到这一点.

上下文是在不同的顶级节点下有相关数据共享相同的id值,所以我需要在模板中获取相关节点.

  最佳答案

好的,我终于弄清楚了.愚蠢的问题真的,我只需要删除引号和大括号.其中一次我以为我已经尝试过这个. : d 哦,在第一个例子中我错误地@myId,代码实际上是$myId.

 <xsl:variable name="myId" select="@id" />
<xsl value-of select="//Root/Some/Other/Path/Where[@id=$myId]/@Name" />
 

  相同标签的其他问题

xslt